Java - 在String中对重复的字符进行分组

时间:2011-12-24 19:57:52

标签: java string count character

(这不是作业) 我们可以做一些额外的练习,而且我做了一些。 但是我被困在这一个...... 我需要创建一个程序,给出字符串“loool”打印“l:1:o:3:l:1”。 我尝试了一堆组合,但我一直遇到同样的问题: - 我不能让最后一个重复的字母得到打印(因为使用我的代码,下一个字符需要不同才能打印出来)。

        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();

1 个答案:

答案 0 :(得分:0)

您需要在循环结束后添加一些逻辑,以便解决此问题。此逻辑可能与您在else块中使用的某些代码非常相似。