题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
输入例子:
abc
123456789
输出例子:
abc00000
12345678
90000000
解法1:
暴力:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String str = in.nextLine(); int len = str.length(); int m = len / 8; // 最少可分割的组数 /* 下面嵌套循环,内层作用位分割为8个一组,外层循环确定组数 , “if”考虑特殊情况 */ for (int i = 0; i <= m; i++) { if (i * 8 == len) { // 特殊情况:len=8,16,24…… break; } for (int j = 0; j < 8; j++) { if (i * 8 + j < len)// 判断是否字符串还没输出完 System.out.print(str.charAt(i * 8 + j)); // 没输出完的字符串余下部分继续输出 else { System.out.print("0"); // 字符串已输出完但是这个子字符串输出位数不足8位的补“0” } } System.out.println();// 换行。 } } } }
解法二:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String s = new String(sc.nextLine()); if (s.length() % 8 != 0) // 如果不是八的倍数,字符串直接加八个“0”, s = s + "00000000"; // 明显字符串只要八个一组输出就可以啦; while (s.length() >= 8) { System.out.println(s.substring(0, 8)); s = s.substring(8); } } } }
来源:https://www.cnblogs.com/guodao/p/9702515.html