题目:
给定一个字符串,统计其中每个字符串出现的个数。
aaahahajabhbohfg变为a6b2f1g1h4j1o1
思路:
1. 首先确定用map来解决,key中存放字符,value中存放个数。
2.代码结构:
A 定义一个Map集合
B 把字符串转换为字符数组
C 遍历字符数组,得到每一个字符
D 拿字符到Map中找,看返回值,是null,就把改字符作为键,1作为值。
不是null,把值加1,然后重新存储键和值。
E 定义一个字符串缓冲区。
G 字符串缓冲区转化为字符串。
代码:
<pre name="code" class="java">import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class compressDemo {
public String compress(String s){
char[] chs=s.toCharArray();
Map<Character,Integer> map=new TreeMap<Character,Integer>();
for(char ch:chs ){
Integer i=map.get(ch);
if(i==null) map.put(ch,1);
else{
i++;
map.put(ch,i);
}
}
StringBuffer sb=new StringBuffer();
Set<Character> set=map.keySet();
for(Character key :set){
Integer value=map.get(key);
sb.append(key).append(value);
}
String result=sb.toString();
return result;
}
}