2011-12-24 53 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