华为机试在线训练:字符串分隔
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
输入例子:
abc
123456789
输出例子:
abc00000
12345678
90000000
代码:
1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main{ 5 public static void main(String[] args) { 6 Scanner sc = new Scanner(System.in); 7 String[] str = new String[100]; 8 int n = 0; 9 10 while(sc.hasNext()){ 11 String tmp = sc.nextLine(); 12 str[n] = completeStr(tmp); 13 n++; 14 } 15 for(int i = 0; i < n; i++){ 16 printStr(str[i]); 17 } 18 } 19 //字符串填充成8*n长度 20 static String completeStr(String str){ 21 int len = str.length(); 22 int modNum = len % 8; 23 if(modNum != 0){ 24 char[] ch = new char[8 - modNum]; 25 Arrays.fill(ch, '0'); 26 String strCat = new String(ch); 27 str = str.concat(strCat); 28 } 29 return str; 30 } 31 //分段打印 32 static void printStr(String str){ 33 int len = str.length(); 34 int num = len/ 8; 35 for(int i =1; i <= num; i++){ 36 String tmp = str.substring((i - 1)*8, i*8 ); 37 System.out.println(tmp); 38 } 39 } 40 }