给一组字符输出里面出现次数最多的一个以及它出现的次数

public class Tset {
    //给一组字符输出里面出现次数最多的一个以及它出现的次数
    public static void main(String[] args) {
        String str="hfhghgfhgfhghddgghh";
        Map map=new HashMap();//这个map中 key是组成str的每个字符(a,b,c,1),value是字符出现的次数
        
        for (int i = 0; i < str.length(); i++) {//循环str字符串
            String s=str.substring(i,i+1);//取出一个字符串
            //System.out.println(s);
            if (map.containsKey(s)) {//如果这个字符作为key在map已存在
                int value=Integer.parseInt(map.get(s).toString());//获取对应的value并转换为int
                map.remove(s);//删除map中的这列数据
                map.put(s, value+1);//重新加入新的一列数据,key为字符,value为以前的value+1
            }else {
                map.put(s, 1);//如果不存在直接添加进去,并且value为1
            }
        }
        
        //System.out.println("map的长度: "+map.size());
        int maxValue=0;//存储最大value
        String maxKey="";//存储最大key
        for(Object o :map.entrySet()){//遍历这个map,并获取具有最大值的map对象的key与value放入以上两个变量(类似于冒泡排序)
            Map.Entry me=(Entry) o;
            //System.out.print("key: "+me.getKey());
            //System.out.print("value: "+me.getValue());
            String key=me.getKey().toString();
            int value=Integer.parseInt(me.getValue().toString());
            if(value>maxValue){
                maxValue=value;
                maxKey=key;
            }
        }
        System.out.println("出现最多的是: "+maxKey +" 总共出现了: "+maxValue+"次");//输出结果
    }

}

 

posted @ 2017-02-16 14:15  wuyongwork  阅读(1621)  评论(0编辑  收藏  举报