HJ4 字符串分隔
描述
•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(每个字符串长度小于等于100)
输出描述:
依次输出所有分割后的长度为8的新字符串
示例:
输入:abc 输出:abc00000
分析:
1.判断字符串的长度不是8的倍数,再添加0。
2.把字符串分段输出。
代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.next();
if(str.length()>100){
System.out.println("非法输入!");
return;
}
int count;
//字符串的长度不是8的倍数。
if (str.length()%8!=0){
//添加0的个数
count=8-(str.length()%8);
for (int i = 0; i < count; i++) {
str=str+"0";
//str=str.concat("0");
}
}
for (int i = 1; i <= str.length(); i++) {
System.out.print(str.charAt(i-1));
if(i%8==0){
System.out.println();
}
}
}
}
大佬代码:
使用substring方法截取。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
StringBuilder sb = new StringBuilder();//牢记字符串缓冲区的建立语法
sb.append(str);//字符串缓冲区的加入
int size = str.length();
int addZero = 8 - size%8;//addzero的可能值包括8
while((addZero > 0)&&(addZero<8)){//注意边界调节,避免addzero=8
sb.append("0");//使用‘’或“”都可
addZero--;
}
String str1 = sb.toString();
while(str1.length()>0){
System.out.println(str1.substring(0,8));
str1 = str1.substring(8);
}
}
}
}
补0那里!!!很牛!!
import java.util.Scanner;
/**
* @author lxg
* @description 字符串分割
* @date 2021/9/26
*/
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(input.hasNextLine()){
String s = input.nextLine();
split(s);
}
}
public static void split(String s){
while(s.length()>=8){
System.out.println(s.substring(0,8));
s=s.substring(8);
}
if(s.length()<8 && s.length()>0){
s+="00000000";
System.out.println(s.substring(0,8));
}
}
}
这个更简洁!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str;
while (sc.hasNext()) {
str = sc.nextLine();
while (str.length() > 8) {
System.out.println(str.substring(0, 8));
str = str.substring(8);
}
str = str + "00000000";
System.out.println(str.substring(0, 8));
}
}
}