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

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次

  

posted on 2016-10-08 17:09  ckx0709  阅读(340)  评论(0编辑  收藏  举报

导航