zoukankan      html  css  js  c++  java
  • 输出一个纯英文字符串中出现次数最左的单词和次数,如果有几个次数最多的单词,全部输出

    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);
        }

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

  • 相关阅读:
    86. 分隔链表
    85. 最大矩形
    84. 柱状图中最大的矩形
    82. 删除排序链表中的重复元素 II
    80. 删除排序数组中的重复项 II
    77. 组合
    java-xml
    java-反射
    springboot解决跨域问题(CorsConfig )
    解决oracle锁表
  • 原文地址:https://www.cnblogs.com/danawill/p/7966331.html
Copyright © 2011-2022 走看看