/**
* 1)壹種字符串壓縮算法
* str = " aaaabbccccddeaaa "
*壓縮為:“4a2b4c2d1e3a”
*原理實現:
* str = " aaaabbccccddeaaa "
*
* c = str.charAt(i)//c是每個字符。
* 1)初始化
* StringBuilder buf = new StringBuilder();
* int count = 0;表示相同數量的字符。
* char ch = str . charat(0);表示被計數的同壹個字符“a”。
* 2)從i=1開始叠代每個字符。
* c = str . charat(I);//c是每個當前字符。
* 3)檢查當前字符C是否與計數的ch壹致。
*如果壹致,則計數++
*否則(不壹致)
*將count+ch添加到緩沖區buf。
* count=0,ch = c;
* 3)結束時沒有下壹個字符
* 4)有沒有字符串?第2回)
*
* 2)實現歸約算法
* str = " 4a 2 B4 C2 d 1 e3a ";
*我
*/
公共類演示5 {
公共靜態void main(String[] args) {
string s = comp(" aaaawwwe ");
system . out . println(s);
//system . out . println(decomp(s));
}
公共靜態字符串comp(String str){
int I = 1;
StringBuilder buf = new StringBuilder();
int count = 1;
char ch = str . charat(0);
for(;;){
char c = i==str.length()?\ 10 ':str . charat(I);
if(c==ch){
count++;
}否則{
if(count == 1)
buf . append(ch);
其他
buf.append(計數)。追加(ch);
count = 1;
ch = c;
}
i++;
if(i==str.length()+1){
打破;
}
}
返回buf . tostring();
}
}