我有一个字符串为“abbcccdddd”然后我想要一个程序,这样我就可以得到字符串中存在的字符数,它应该输出为“ab2c3d4” 希望以简单的方式和有效的方式获得ans。 样本输入 abbaaaccc
示例输出 ab2a3c3
答案 0 :(得分:0)
这是一个针对您的问题的java函数:
public static String rleEncode(String toEncode) {
StringBuffer dest = new StringBuffer();
for (int i = 0; i < toEncode.length(); i++) {
int runLength = 1;
while (i+1 < toEncode.length() && toEncode.charAt(i) == toEncode.charAt(i+1)) {
runLength++;
i++;
}
dest.append(runLength);
dest.append(toEncode.charAt(i));
}
return dest.toString();
}
只需将您的String作为参数
答案 1 :(得分:0)
这将完全符合您的期望。
public static void main(String[] args) {
String s="abbaaaccc";
StringBuffer result=new StringBuffer();
for(int i=0;i<s.length();i++) {
int charCount=1;
while(i+1<s.length() && s.charAt(i) == s.charAt(i+1)) {
charCount++;
i++;
}
result.append(s.charAt(i));
if(charCount>1) {
result.append(charCount);
}
}
System.out.println(result);
}