题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
示例1
输入
abc
123456789
输出
abc00000
12345678
90000000
实现代码
import java.util.Scanner;
import java.util.ArrayList;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String st1 = sc.nextLine();
String st2 = sc.nextLine();
ArrayList<String> al = new ArrayList<String>();
make(st1,al);
make(st2,al);
for(String s : al){
System.out.println(s);
}
}
/**将一个字符串按8分隔,不够补零:
*1 将字符串的长度lenst除以8得出倍数n和余数yu;
*2 使用循环,循环次数为n,按8的倍数截取字符串,然后将截取到的字符串存放到ArrayList中
* 3 在余数不为0时,通过8-yu得到需要补m个零,获得字符串除以8后剩余的字符串endstr。利用循环往endstr末尾添加0
* 4 将3的内容存放进ArrayList
*/
public static ArrayList<String> make(String st,ArrayList<String> al){
int lenst = st.length();
//能几次被8整除
int n = lenst/8;
//余数
int yu = lenst%8;
for(int i=0;i<n;i++){
al.add(st.substring(i*8, 8*(i+1)));
}
if(yu!=0){
String endst = st.substring(8*n);
for(int i =0;i<8-yu;i++){
endst = endst + 0;
}
al.add(endst);
}
return al;
}
}
网友评论