首页 > 代码库 > 计算字符串每个字符出现的次数

计算字符串每个字符出现的次数

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次

  

计算字符串每个字符出现的次数