计算字符串每个字符出现的次数
package test001;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class EveryStrCount {
public static void main(String[] args)
{
String str = "程序员好吗>序员好吗>程序序家序序序序aabb;;;";
Map<Character,Integer> map = new HashMap<Character,Integer>();
char[] ch = str.toCharArray();
/*将字符和出现的个数存入到Map*/
for(char c:ch){
if(map.get(c)==null){
map.put(c, 1);
}else{
Integer in = map.get(c);
in++;
map.put(c, in);
}
}
//取出key集合
Set<Character> set = map.keySet();
//根据key,取出value就可以算出字符出现的个数
for(Character c:set)
{
System.out.println("["+c+"]"+":出现的次数为:"+map.get(c));
}
System.out.println();
//取出value集合
Collection<Integer> col = map.values();
//取出最大值(也就是出现最多的次数)
int charMaxIndex = Collections.max(col);
//取出最小值(也就是出现最少的次数)
int charMinIndex = Collections.min(col);
//Map.Entry是一个接口,Map.entrySet方法返回映射的 collection 视图,获得映射项引用的
//唯一方法是通过此 collection 视图的迭代器来实现。
for(Map.Entry<Character, Integer> entry : map.entrySet())
{
if(entry.getValue().equals(charMaxIndex))
{
System.out.println("出现次数最多的字符是:"+entry.getKey()+":"+"它出现了:"+charMaxIndex+"次");
}
else if(entry.getValue().equals(charMinIndex))
{
System.out.println("出现次数最少的字符是:"+entry.getKey()+":"+"它出现了:"+charMinIndex+"次");
}
}
}
}
运行结果:
[员]:出现的次数为:2 [b]:出现的次数为:2 [a]:出现的次数为:2 [;]:出现的次数为:3 [程]:出现的次数为:2 [吗]:出现的次数为:2 [好]:出现的次数为:2 [>]:出现的次数为:2 [家]:出现的次数为:1 [序]:出现的次数为:8 出现次数最少的字符是:家:它出现了:1次 出现次数最多的字符是:序:它出现了:8次
浙公网安备 33010602011771号