String str2 = "aabbbbbcccccddaadbaaaa"; String str = "aabbcddd";
不超过2个的字符不压缩,超过2个的才进行压缩:
public class C {
public static String getString(String str) {
int n = str.length();
StringBuilder sb = new StringBuilder();
int count = 0;
int j = 0;
int i = 0;
for(;i<n;i=j) {
char c = str.charAt(i);
count = 0;
j = i + 1;
while(j<n) {
if(str.charAt(j)==c) {
count++;
}
else {
break;
}
j++;
}
if(count==0) {
sb.append(c);
}
else if(count==1) {
sb.append(c);
sb.append(c);
}
else if(count>=2) {
sb.append(c);
sb.append((count+1)+"");
}
}
return sb.toString();
}
public static void main(String[] args) {
String str2 = "aabbbbbcccccddaadbaaaa";
String str = "aabbcddd";
System.out.println(getString(str2));
}
}
// 输出:
aab5c5ddaadba4
aabbcd3