仅当字符彼此相邻时如何计算字符,否则仅按原样打印字符。我基于对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]);
}
答案 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上的工作示例的链接。