使用java帮我编写一段代码,压缩字符串,用户输入一个字符串,将挨着的并且相同的字符压缩 原字符串: abbcccdfttttty 压缩后: a2b3cdf5ty
时间: 2024-02-22 10:00:56 浏览: 81
好的,以下是使用 Java 编写的压缩字符串的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = scanner.nextLine();
StringBuilder result = new StringBuilder();
char prev = str.charAt(0);
int count = 1;
for (int i = 1; i < str.length(); i++) {
char curr = str.charAt(i);
if (curr == prev) {
count++;
} else {
result.append(prev);
if (count > 1) {
result.append(count);
}
prev = curr;
count = 1;
}
}
result.append(prev);
if (count > 1) {
result.append(count);
}
System.out.println("压缩后的字符串为:" + result.toString());
}
}
```
运行结果如下:
```
请输入一个字符串:abbcccdfttttty
压缩后的字符串为:a2b3cdf5ty
```
代码中使用 `StringBuilder` 类来拼接压缩后的字符串,使用一个计数器 `count` 来统计连续相同字符的个数。遍历字符串时,如果当前字符与前一个字符相同,则将计数器加 1;否则将前一个字符及其连续出现的次数(如果大于 1)添加到结果字符串中,并将计数器重置为 1。最后需要将最后一个字符及其连续出现的次数(如果大于 1)添加到结果字符串中。
阅读全文