package competor;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
System.out.println("请输入一行字符串");
Scanner sc = new Scanner(System.in);
String str = sc.next();
String[] str1 = new String[str.length() - 1];
for (int i = 0; i < str.length(); i++) {
str1[i] = str;
for (int i = 0; i < str1.length; i++) {
if (str1[i].charAt(i) >= 'a' || str1[i].charAt(i) <= 'z') {
if (str1[i + 1].charAt(i) > '0' || str1[i + 1].charAt(i) <= '9') {
for (int i1 = 0; i1 < i + 1; i1++) {
System.out.println(str1[i]);
}
}
}
}
}
}
}
当时做的时候就发现有很多问题,但不知道怎么解决,其实不需要数组就能完成
我们可以边读字符串边输出,读字符串的时候去判断是否有数字出现
public class string {
public static void main(String[] args) {
System.out.println("请输入一行字符串:");
Scanner sc = new Scanner(System.in);
String str = sc.next();
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)>='0'&&str.charAt(i)<='9'){//判断是否有数字
int sum=str.charAt(i)-'0'-1;//第一次已经打印了一个所以要-1
for (int j = 0; j < sum; j++) {
System.out.print(str.charAt(i-1));
}
}else{
System.out.print(str.charAt(i));
}
}
}
}