004字符串分隔
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
示例1
输入
abc 123456789
输出
abc00000 12345678 90000000
我的解答
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
//拆分长度为8
int size = 8;
while (input.hasNextLine()) {
//先用StringBuilder存放字符串
StringBuilder targetBuilder = new StringBuilder(input.nextLine());
//targetBuilder.length() % size代表最后一个字符串长度 但要考虑刚好为size倍数情况
//例子
// 123456789 ->(12345678 9)->(12345678 90000000)
// 9%8=1 最后一个字符串长度为1 需要补(8-1)=7个零
// 12345678 ->(12345678)
// 8&8=0 刚好为size的倍数 不需要补零
// 但(8-0)=8 结果就变成 12345678 ->(12345678 00000000)
// 所以再次对补零数对size取模
int num = (size - (targetBuilder.length() % size)) % size;
//补零
for (int i = 0; i < num; i++) {
targetBuilder.append("0");
}
String target = targetBuilder.toString();
while (target.length() >= size) {
//截取并输出前size个字符
System.out.println(target.substring(0, size));
//更新截取后的字符串
target = target.substring(size);
}
}
}
}
学到的东西
1.substring(start,end)提取字符串中介于两个指定下标之间的字符 左开右闭
"hello" h下标为1 e下标为2 o下标为5

浙公网安备 33010602011771号