[size=large][color=red]经常遇到这个问题:总结一下 思路和代码[/color][/size]
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
//统计一个字符串中每个字符出现的次数
//思路 :
/*1.遍历字符串,取出每一个字符需要用到chatAt()
2.由于最终展示的数据呈现的方式是 字符---个数 这种形式,能联想到用map集合是最合适的;那么将取出的字符存到临时容器中
3.判断:如果这个字符在容器中不存在,那么肯定是第一次出现,直接将这个字符存到容器中,此时value的值为1;如果这个字符在容器中存在,则取出字符的value,对值进行加1的操作,然后更新map;
4.遍历map,查看字符与之对应的次数。 */
public class TestCountString {
public static void main(String[] args) {
String str = "aaeufreuhfjdshfakjdshfkjdsahfkjdsahfeufhyenvmvmcxbvdafaslkjdhfjdsfheibcda";
Map map = new HashMap ();
for(int i=0;i<str.length();i++){
char ch = str.charAt(i);
boolean isFirstExist = map.containsKey(ch);
if(isFirstExist){ //多次
int value = (Integer)map.get(ch);
value++;
map.put(ch, value);
}else{ //第一次
map.put(ch, 1);
}
}
Set keySet = map.keySet();
for (Object key : keySet) {
Object value = map.get(key);
System.out.println(key+"========"+value);
}
}
}
/*
运行结果:
f========10
d========8
e========5
b========2
c========2
a========8
n========1
l========1
m========2
j========6
k========4
h========8
i========1
v========3
u========3
s========6
r========1
y========1
x========1
*/