public class CompressionAlgorithm1 {
/**
* @param args
* 实现简易字符串压缩算法:一个长度最大为128的字符串,
* 由字母a-z或者A-Z组成,将其中连续出现2次以上(含2次)的字母转换为字母和出现次数,
* 以达到压缩目的。
* 输入:AAAABBBB
* 输出:A4B4
*/
public static String outPutStr(String InputStr){
//首先先获取字符串的第一个字符
int i=0;
StringBuffer outputStr=new StringBuffer();;
int length=InputStr.length();
while(i<length){
//依次获取字符
char a=InputStr.charAt(i);
int number=1;
//然后判断这个字符之后是否还有相同的字符
for(int j=i+1;j<length;j++){
char b=InputStr.charAt(j);
//判断 a和b是否相等
if(a==b){
number++;
}else{
//跳出本次循环,进入下一个循环
break;
}
}
//将字符进行压缩
if(number>1){
//如果number大于1那就表明可以压缩
outputStr.append(a+new Integer(number).toString());
}else{
outputStr.append(a);
}
//将获取number添加进i
i=i+number;
}
return outputStr.toString();
}
public static void main(String[] args) {
String inputStr="ABccTTThhKKKL";
System.out.println(outPutStr(inputStr));
}
}