仅当字符彼此相邻时计数

时间:2018-09-08 08:35:18

标签: java

仅当字符彼此相邻时如何计算字符,否则仅按原样打印字符。我基于对Java的一点了解编写了以下代码。

例如字符串w =“ kjiikkkjial”;

结果应为:kji2k3jial

    String am ="asbbaamkkkjkssg";
    char op = 0;

    char[] ch = am.toCharArray();
    for(int i=0; i<ch.length; i++) {
        int k=1;
        for(int j=i+1; j<ch.length; j++) {
            if(ch[i]==ch[j]) {
               k++;
               op=ch[j];    
               i=j;
            }
            else  break;
        }
        if(k>1)
            System.out.print(op+""+k);
        else
            System.out.print(ch[i]);    
    }

1 个答案:

答案 0 :(得分:0)

这应该可以工作,使用输入作为字符串来调用此函数,它将返回预期的输出。

public static String runLengthEncoding(String text) {
    String encodedString = "";

    for (int i = 0, count = 1; i < text.length(); i++) {
        if (i + 1 < text.length() && text.charAt(i) == text.charAt(i + 1))
            count++;
        else {
            encodedString = encodedString.concat(Character.toString(text.charAt(i)));
            if(count>1) {
                encodedString = encodedString.concat(Integer.toString(count));
            }
            count = 1;
        }
    }
    return encodedString;
}

这是指向ideone上的工作示例的链接。