华为OJ063-字符串分割
Posted Wang-Junchao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为OJ063-字符串分割相关的知识,希望对你有一定的参考价值。
【华为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);
}
}
以上是关于华为OJ063-字符串分割的主要内容,如果未能解决你的问题,请参考以下文章