字符串分隔
输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:连续输入字符串(每个字符串长度小于等于100)
输出描述:依次输出所有分割后的长度为8的新字符串
示例1
输入:abc
输出:abc00000
思路一:普通版
1、如果字符串是8的整数倍,就循环截取8位
2、如果字符串小于8,把小于的位数补0
3、如果字符串大于8位,且不是8的整数倍,循环截取8位并输出,剩余不够8位的补0
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
StringBuffer buffer = new StringBuffer(str);
if (str.length() % 8 == 0) {
while(str.length()>0){
System.out.println(str.substring(0,8));
str = str.substring(8);
}
} else if (str.length() < 8) {
for (int i = 0; i < 8 - str.length(); i++) {
buffer.append(0);
}
System.out.println(buffer.toString());
} else {
while (str.length() > 8 ) {
System.out.println(str.substring(0, 8));
str = str.substring(8);
}
str+="00000000";
System.out.println(str.substring(0,8));
}
}
}
思路二:精简版
1、如果字符串大于8位,循环截取8位并输出
2、经过上面截取后,剩余不够8位的补0
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
while(str.length() >= 8){
System.out.println(str.substring(0, 8));
str = str.substring(8);
}
if (str.length()>0 && str.length() < 8){
str+="00000000";
System.out.println(str.substring(0, 8));
}
}
}
3241

被折叠的 条评论
为什么被折叠?



