java 不使用stringbuilder压缩字符串 如aaaabbbbbcdefa变为a4b5cdefa
时间: 2024-05-10 18:14:38 浏览: 49
可以使用普通的字符串操作来实现字符串压缩,具体实现步骤如下:
1. 定义一个计数器 count 和一个空字符串 result。
2. 遍历字符串,对于每个字符,如果它和前一个字符相同,则 count 加 1,否则将前一个字符和 count 一同拼接到 result 中,然后将 count 重置为 1。
3. 遍历结束后,将最后一个字符和 count 一同拼接到 result 中。
4. 返回 result。
具体实现代码如下:
```java
public static String compress(String s) {
if (s == null || s.length() == 0) {
return s;
}
int count = 1;
char prev = s.charAt(0);
StringBuilder result = new StringBuilder();
for (int i = 1; i < s.length(); i++) {
char curr = s.charAt(i);
if (curr == prev) {
count++;
} else {
result.append(prev).append(count);
count = 1;
}
prev = curr;
}
result.append(prev).append(count);
return result.toString();
}
```
对于样例字符串 "aaaabbbbbcdefa",该方法返回的结果是 "a4b5cdefa"。
阅读全文