62,621
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main(String[] args) {
String str = "aaaabbbbcdeaa";
StringBuffer strb = new StringBuffer();
char j = str.charAt(0);
int count = 1;
for(int i = 1; i < str.length(); i++){
//统计字符串相同字符个数
if(j == str.charAt(i))
count++;
else{
//不相同把字符和值加进strb
strb.append(j).append(count);
count = 1;
j = str.charAt(i);
}
}
//因为 最后一次没有加进strb
strb.append(j).append(count);
System.out.println(strb.toString());
}
}
String str = "aaaabbbbcdeaa";
Matcher m=Pattern.compile("([a-z])(\\1*)").matcher(str);
while(m.find())
System.out.print(m.group(1)+(m.group(2).length()+1));/**
* 简单的压缩算法实现。<br>
* 以字符加出现的次数进行压缩,比如输入为<br>
* aaaabbbbccdeaa<br>
* 输出为<br>
* a4b4c2d1e1a2
*
* @author Java人(javaren.org)
*/
public class TestCompress {
/**
* @param args
*/
public static void main(String[] args) {
String str = "aaaabbbbccdeaa";
char[] cs = str.toCharArray();
char last = 0;
int num = 0;
for (char c : cs) {
if (last == 0) {
last = c;
System.out.print(last);
num = 1;
} else {
if (c == last) {
num++;
} else {
System.out.print(num);
last = c;
System.out.print(last);
num = 1;
}
}
}
System.out.println(num);
}
}