/*
* 题目分析: 拆分、补全字符串
* 解题思路: 读一行处理一行就行了
* 注意事项:
* 1. 其实直接打印就行, 不用输出到新的字符串数组 (我就不该非得输出到数组, 导致失败了两次!!!)
* 2. 考虑怎么处理多余的子串
* 3. 声明数组: String strs = new Sting[10];
* 4. 获取子串: substring(int beginIndex, int endIndex)
* 提交失败:
* 1. 用例通过率80%, 报错返回非0, 原因未知, 开启练习模式提交一次!!!
* 2. 练习模式也没有提示未通过的用例啊, 不过给出了报错的行号, 原因: 不存在多余子串时也进行补0操作,导致数组越界
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String str = sc.nextLine().trim();
int len = str.length();
if (str == null || len == 0) {
continue;
}
int num1 = len / 8; // 满足长度等于8的子串数量
int num2 = len % 8; // 多出的字符数量
String[] strs = new String[num1 + (num2 > 0 ? 1 : 0)];
for (int i = 0; i < num1; i++) {
strs[i] = str.substring(i * 8, (i + 1) * 8);
}
// 想想有没有更好的补0的方法, 这里看起来太丑了!!!
if (num2 > 0) {
char[] chs = new char[8];
for (int i = 0, j = num1 * 8; num2 > 0 && i < 8; i++, j++) {
if (j < len) {
chs[i] = str.charAt(j);
} else {
chs[i] = '0';
}
}
strs[num1] = new String(chs);
}
for (String s: strs) {
System.out.println(s);
}
}
}
}