import java.util.*;
public class compressOver3 {
public static String compress (String str) {
if (str == null || str.length() < 3) {
return null;
}
char prev = str.charAt(0);
StringBuilder ans= new StringBuilder();
int count = 1;
for (int i = 1; i <= str.length(); i++) {
// System.out.println(str.charAt(i));
if (i == str.length()) {
helper(ans, count, prev);
break;
}
if (str.charAt(i) != prev) {
helper(ans, count, prev);
prev = str.charAt(i);
count = 1;
}else if (str.charAt(i) == prev) {
count++;
}
}
return ans.toString();
}x
public static void helper(StringBuilder ans, int count, char prev){
if (count < 3) {
for (int j = 0; j < count; j++) {
ans.append(prev);
}
}else{
ans.append(prev);
ans.append(String.valueOf(count));
}
}
public static void main(String[] args) {
String input = "aabbcc";
System.out.println(compress(input));
}
}
aaaabb -> a4bb
aaabbbccc ->a3b3c3
aabbcc->aabbcc
三个以上压缩
注意细节⚠️