我的任务是编写一个带字符串的程序,例如C2O3M1P1R1E1S10, 并将其解压缩为CCOOOMPRESSSSSSSSSS。我无法让程序正确解析2位数字。这就是我所拥有的。我知道我很亲密。
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
int index = 0;
int numReps = 0;
char nextChar = ' ';
while (index < input.length())
{
char c = input.charAt(index);
if (!Character.isDigit(c))
{
nextChar = c;
index++;
}
else
{
while (Character.isDigit(c))
{
int temp = Integer.parseInt(""+c);
numReps = (numReps*10)+temp;
index++;
System.out.print(nextChar);
if (index >= input.length()) break;
c = input.charAt(index);
}
}
}
这实际上只是一个较大程序的一部分,所以如果某些格式化了,我很抱歉。
答案 0 :(得分:0)
在while
循环中,您需要将数字转换为number
,然后在该循环字母后创建另一个循环并重复number
次打印nextChar
。
现在,每次从字符串中读取数字时,您只需打印nextChar
。
为了方便起见,您可以将您在StringBuilder
中阅读的每个数字存储起来,然后使用Integer.parseInt(yourStringBuilder.toString())
将其解析为整数。