java实现将字符串压缩,例如字符串AAAABBCDDEEEEE输出未A4B2CD2E5
时间: 2023-10-03 08:08:12 浏览: 125
好的,我可以给你提供一个Java实现的字符串压缩算法,将连续出现的字符替换为该字符和其出现次数的组合。具体实现过程如下:
```java
public static String compressString(String str) {
if (str == null || str.isEmpty()) {
return str;
}
StringBuilder compressed = new StringBuilder();
char currChar = str.charAt(0);
int count = 1;
for (int i = 1; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch == currChar) {
count++;
} else {
compressed.append(currChar).append(count);
currChar = ch;
count = 1;
}
}
compressed.append(currChar).append(count);
return compressed.toString();
}
```
你可以通过传入待压缩的字符串作为参数来调用该方法,例如:
```java
String str = "AAAABBCDDEEEEE";
String compressedStr = compressString(str);
System.out.println(compressedStr); // 输出 "A4B2CD2E5"
```
注意,该算法只适用于连续出现的字符,如果字符串中存在间隔出现的相同字符,则无法正确压缩。
阅读全文