【华为OJ】【063-字符串分割】

【华为OJ】【算法总篇章】


【华为OJ】【063-字符串分割】

【工程下载】


题目描述

连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
首先输入一个整数,为要输入的字符串个数。
例如:
输入:
    2
    abc
    12345789
输出:
    abc00000
    12345678
    90000000

输入描述

首先输入数字n,表示要输入多少个字符串。连续输入字符串(输出次数为N,字符串长度小于100)。

输出描述

按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入例子

2
abc
123456789

输出例子

abc00000
12345678
90000000

算法实现

import java.util.Arrays;
import java.util.Scanner;

/**
 * Author: 王俊超
 * Date: 2015-12-27 16:18
 * Declaration: All Rights Reserved !!!
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
//        Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt"));
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            String[] arr = new String[n];

            for (int i = 0; i < arr.length; i++) {
                arr[i] = scanner.next();
            }

            System.out.println(convert(arr));
        }

        scanner.close();
    }

    private static String convert(String[] arr) {

        StringBuilder builder = new StringBuilder(128);
        for (String s : arr) {
            int pos = 8;

            while (pos <= s.length()) {
                builder.append(s.substring(pos - 8, pos)).append('\n');
                pos += 8;
            }


            if (pos > s.length()) {
                builder.append(s.substring(pos - 8, s.length()));
            }

            for (int i = s.length(); i < pos; i++) {
                builder.append('0');
            }

            builder.append('\n');
        }
        return builder.substring(0, builder.length() - 1);
    }
}

你可能感兴趣的:(华为OJ,华为OJ)