當前位置:成語大全網 - 漢語詞典 - 如何用java壓縮字符串?

如何用java壓縮字符串?

包Java se 1 . day 02;

/**

* 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();

}

}