hjp222 发表于 2013-2-4 22:57:09

笔试题:算字符串中出现最多的字符

有一个字符串,不知道有多少个字符,可能很长,算出出现最多的有哪些字符?public class Test2 {public static void main(String args[]){String str=" ddvdlkd黄黄黄黄 黄 黄fdfd黄d";getmax(str);}public static void getmax(String arryS){HashMap<String ,Integer> map =new HashMap<String ,Integer>();   if(arryS!=null){int arrys=arryS.length();char c;String x=null;for(int i=0;i<arrys;i++){ c=arryS.charAt(i); x=String.valueOf(c);if(!"".equals(x.trim())){if(map!=null&&map.containsKey(x)){    map.put(x, map.get(x)+1 );}else{map.put(x, 1);}}}//得到字符的总数放入map   Set<String> set =map.keySet();   TreeSet<Integer> tset=new TreeSet<Integer>(Collections.reverseOrder());   Iterator<String> it=set.iterator();         while(it.hasNext())       {    tset.add(map.get(it.next()));   //将map中的value放入TreeSet降序,       }         Integer i=(Integer)tset.first(); //得到第一个value,取出map,value中最大的值   Iterator<String> it2=set.iterator();   String str=null;   while(it2.hasNext())         {               //再跟map中的value比较,得到key,key就是所求的出现最多的值   str =it2.next();   if(map.get(str).equals(i)){   System.out.println("出现最多的字符 :"+str+", 共出现了" +i+ "次");   }   }}}}/*输出结果: * 出现最多的字符 :d, 共出现了7次   出现最多的字符 :黄, 共出现了7次*/ 
页: [1]
查看完整版本: 笔试题:算字符串中出现最多的字符