import java.util.Scanner;
/*
*字符串的压缩并输出字符串的长度;
*/
public class StringCompre {
public String strCompress(String str){
//判断字符串是否为空;如果为空输出null
if (str==null||str.isEmpty()){
System.out.println("null");
return null;
}
//字符串不为空时;
else{
//test代表当前统计的字符为字符串中的第一个字符;
char test=str.charAt(0);
StringBuffer mystr=new StringBuffer();
//统计字符的个数;
int count=1;
for (int i=1;i<str.length();i++){
if (test==str.charAt(i))
//如果第一个字符等于第二个字符时count++;
count++;
else{
//向缓冲区buf增加当前字符;
mystr.append(test);
//如果当前字符的个数大于1的话将其字符的个数追加在当前字符的后面;
if (count>1){
mystr.append(count);
// flag=true;
}
//当前是哪个字符;
test=str.charAt(i);
//初始化count;
count=1;
}
}
//添加最后一个字符
mystr.append(test);
//若最后一个字符的个数大于1则将其个数添加在该字符后面
if (count>1){
mystr.append(count);
}
//输出字符串长度
System.out.println(mystr.length());
return mystr.toString();
}
}
public static void main(String[] args) {
StringCompre s=new StringCompre();
Scanner sc=new Scanner(System.in);
String s1=sc.nextLine();
System.out.println(s.strCompress(s1));
}
}
字符串的压缩并输出字符串的长度;
于 2019-09-13 11:35:18 首次发布