Java循环没有解析第二个int

时间:2013-09-29 22:36:38

标签: java for-loop parseint

我的任务是编写一个带字符串的程序,例如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);
    }

  }
}

这实际上只是一个较大程序的一部分,所以如果某些格式化了,我很抱歉。

1 个答案:

答案 0 :(得分:0)

while循环中,您需要将数字转换为number,然后在该循​​环字母后创建另一个循环并重复number次打印nextChar

现在,每次从字符串中读取数字时,您只需打印nextChar

为了方便起见,您可以将您在StringBuilder中阅读的每个数字存储起来,然后使用Integer.parseInt(yourStringBuilder.toString())将其解析为整数。