输出一个纯英文字符串中出现次数最左的单词和次数,如果有几个次数最多的单词,全部输出
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); }
谁有更好的方法,麻烦告诉我,感觉这样做不太好,谢谢大家