2013-09-29 24 views
0

我的任務是編寫一個程序,該程序需要一個字符串,例如C2O3M1P1R1E1S10, 並將其解壓縮到CCOOOMPRESSSSSSSSSS中。我無法讓程序正確解析2位數字。這是我的。我知道我很接近。Java循環無法解析第二個int

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

numReps在循環之外初始化。它看起來像它會適用於第一個數字,但在開始分析第二個數字序列之前,您需要將其設置回零。 – pburka

+0

看起來像numReps很重要,但是在給它賦值之後,你永遠不會使用它。與溫度相同。 –

+0

我建議你從代碼中退出,然後用**語言編寫**解決初始問題所需的步驟。我相信當你這樣做時,你會看到你當前代碼的一些問題。如果你仍然有麻煩,你將會對你想要做的事情有更好的理解。 –

回答

0

在你while循環,你需要的數字轉化爲number和環函後,再創建一個並重復number次印刷nextChar

現在,您每次只能從字符串讀取數字時纔打印nextChar

爲了使事情更容易,您可以將您讀取的每個數字存儲在StringBuilder中,然後將其解析爲與Integer.parseInt(yourStringBuilder.toString())的整數。

相關問題