2011-12-24 56 views
0

(這不是作業) 我們有一些額外的練習,我們可以做,我做了一些。 但我被困在這一個... 我需要一個程序,給予字符串「loool」打印「l:1:o:3:l:1」。 我已經嘗試了一堆組合,但我一直得到相同的問題: - 我不能讓最後一個重複的字母來打印(因爲用我的代碼下一個字符需要是不同的打印發生)。Java - 將字符串中的重複字符組合起來

 String str = "loool"; 

    StringBuilder sb = new StringBuilder(); 

    int count = 1; 
    char before; 
    before = str.charAt(0); 

    for (int i = 1;i < str.length();i++) { 
     if (str.charAt(i) == before) { 
      count++; 
     } 
     else { 
      sb.append(before + ":" + count); 
      before = str.charAt(i); 
      count = 1; 
     } 
    } 

    return sb.toString(); 
+0

所以另一個停止條件是字符串的結束不只是一個不同的下一個字符 – 2011-12-24 20:01:25

回答

0

爲了處理這個問題,您需要在循環完成後添加一些邏輯。此邏輯可能與您在else塊中使用的一些代碼非常相似。

+0

明白了。 我想在for()裏面做所有的事情,在循環之後添加東西從未想過。 – Zentdayn 2011-12-24 20:10:20