输出一个纯英文字符串中出现次数最左的单词和次数,如果有几个次数最多的单词,全部输出

public static void main(String[] args) {
        String str = "aaaaaaaaaaaacvjjfhgjfZXfkMKOOOOOOOOOOOOOJDooooooooooooojlngmbgghcdaswezzzzzzzzzzzzz";
        // 英文字母,一共有26个
        // 小写的字母a是97 小写的字母z是122
        // 大写的字母A是65 大写的字母Z是90
        int[] counter = new int[123];
        int  max = 0; //counter数组中的最大数
        //遍历这个字符串
        for(int i = 0,len = str.length();i<len;i++) {
            char ch = str.charAt(i);
            counter[ch]++;
            if(counter[ch]>max) {
                max = counter[ch];
            }
        }
        System.out.println(max);
        // 用一个map来存放出现次数最多的字母,及其次数
        Map<Character, Integer> map= new HashMap<Character, Integer>();
        for(int j = 0,len = counter.length ; j < len ; j++) {
            if(counter[j]==max) {
                map.put((char)j, max);
            }
            
        }
        System.out.println(map);
    }

谁有更好的方法,麻烦告诉我,感觉这样做不太好,谢谢大家

 

posted @ 2017-12-03 16:13  danawill  阅读(542)  评论(0编辑  收藏  举报