import java.util.*; public class Solution { public String compressString (String param) { // 预处理 if (param.length() == 0) return ""; // 初始化 StringBuffer res = new StringBuffer(); // 遍历字符串 int index = 0; while (index < param.length()) { char c = param.charAt(index); // 当前待统计字符 int count = 1; // 字符个数 // 拼接 res.append(c); // 统计字符的连续数 while (index+1 < param.length() && param.charAt(index+1) == c) { // 存在下一个字符且与当前字符相等 count++; index++; } // 当前字符统计完毕 // 若连续个数大于1则拼接数字 if (count > 1) res.append(count); // 指针移至下个待统计的字符 index++; } // 字符串遍历结束 // 返回压缩结果 return res.toString(); } }