实现过程:
package com.company;
import java.util.Scanner;
public class stringCompress {
public static StringBuffer stringCompress(String str){
StringBuffer result = new StringBuffer();
char word1 = str.charAt(0);//取第一个字符
int sum = 1;
for(int i = 1;i < str.length();i++){
char word2 = str.charAt(i);//比较当前字符与前一个字符
if(word1 == word2){
sum++;//若为相同字符,个数加一
continue;
}
result = result.append(word1).append(sum);//进行字符拼接
word1 = word2;//把当前字符变为第一个字符
sum = 1;//个数清零
}
//result最后一个字符及个数
result = result.append(word1).append(sum);
return result;
}
public static void main(String[] args) {
System.out.println("请输入一串字符串:");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println("字符串压缩后为:"+stringCompress(str));
}
}
运行结果:
知识点小结:
nextLine():此方法返回的是Enter键之前所有字符
charAt(int index):一个用来检索特定索引下的字符String的实例方法
charAt():此方法返回指定索引位置的char值,索引范围[0,length-1]
String变为StringBuffffer:利用StringBuffffer的构造方法或append()方法