java代码写出字符编码 "aaaaaaabbbbbcerrrrggggggggsssssspoqqqqq" ==> "a7b5cer4g8s6poq5"
时间: 2023-07-02 12:07:18 浏览: 127
可以使用一个StringBuilder来遍历字符串,统计每个字符连续出现的次数,并将其压缩成一个字符和对应的出现次数。以下是Java代码实现:
```java
public static String compressString(String str) {
if (str == null || str.isEmpty()) {
return str; // 空字符串直接返回
}
StringBuilder sb = new StringBuilder();
char prevChar = str.charAt(0); // 前一个字符
int count = 1; // 目前连续出现的次数
for (int i = 1; i < str.length(); i++) {
char c = str.charAt(i);
if (c == prevChar) {
count++;
} else {
sb.append(prevChar).append(count);
prevChar = c;
count = 1;
}
}
sb.append(prevChar).append(count); // 处理最后一个字符
return sb.toString();
}
```
可以这样调用方法:
```java
String compressed = compressString("aaaaaaabbbbbcerrrrggggggggsssssspoqqqqq");
System.out.println(compressed); // 输出 "a7b5cer4g8s6poq5"
```