比如:aabbbccccbb,输出应该是a_2_b_3_c_4_b_2
实现思路:
循环遍历给定字符串,比较当前字符与前一个字符,相同就加1,不用就记录上一个字符的次数,同时要判断是否已经到结尾,如果是的,将当前字符的次数记录下来。最后统一打印。
代码实现如下:
public static void main(String[] args) {
String str = "aawwwbbbwwww";
StringBuilder builder = new StringBuilder();
int count = 1;
for (int i = 1; i < str.length() ; i++) {
char c1 = str.charAt(i-1);
char c2 = str.charAt(i);
if (c1 != c2) {
builder.append(c1).append("_").append(count).append("_");
count=1;
if (i==str.length() -1){
builder.append(c2).append("_").append(count).append("_");
}
}
if (c1 == c2) {
count++;
if (i==str.length() -1){
builder.append(c1).append("_").append(count).append("_");
}
}
}
System.out.println(builder.toString().substring(0,builder.length()-1));
}
}