題目描述
?連續(xù)輸入字符串角寸,請按長度為8拆分每個字符串后輸出到新的字符串?dāng)?shù)組;
?長度不是8整數(shù)倍的字符串請在后面補數(shù)字0沮峡,空字符串不處理亿柑。
輸入描述:
連續(xù)輸入字符串(輸入2次,每個字符串長度小于100)
輸出描述:
輸出到長度為8的新字符串?dāng)?shù)組
示例1
輸入
abc
123456789
輸出
abc00000
12345678
90000000
實現(xiàn)代碼
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得出倍數(shù)n和余數(shù)yu;
*2 使用循環(huán)疟游,循環(huán)次數(shù)為n,按8的倍數(shù)截取字符串颁虐,然后將截取到的字符串存放到ArrayList中
* 3 在余數(shù)不為0時卧须,通過8-yu得到需要補m個零故慈,獲得字符串除以8后剩余的字符串endstr察绷。利用循環(huán)往endstr末尾添加0
* 4 將3的內(nèi)容存放進ArrayList
*/
public static ArrayList<String> make(String st,ArrayList<String> al){
int lenst = st.length();
//能幾次被8整除
int n = lenst/8;
//余數(shù)
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;
}
}