Java[10] 通过集合方法,计算出输入的字符出现的次数以及出现最多的字符

要求


通过集合方法,计算出输入的字符出现的次数以及出现最多的字符

实施


package com.sy.one;
import java.util.*;

public class Test47 {
    public static void main(String[] args) {
        //从控制台输入统计字符串
        Scanner in = new Scanner(System.in);
        String a = in.nextLine();
        Map<String,Integer> map = new HashMap<String,Integer>();
        //赋值给map,key值和重复次数
        for (int i = 0; i <a.length() ; i++) {
            String b = a.charAt(i)+"";
            int c = 1;
            if (map.get(b) != null){
                c = map.get(b)+1;
            }
            map.put(b,c);
        }
        List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
        //从小到大排序
        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                return o1.getValue() - o2.getValue();
            }
        });
        //循环取字符及其出现次数
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i).getKey()+"出现"+list.get(i).getValue()+"次");
        }
        //因从小到大排序,取最后一个索引的数值
        System.out.println(list.get(list.size()-1).getKey()+"字符出现次数最多,"+list.get(list.size()-1).getValue()+"次");
    }
}
我的文章对您有帮助吗?
我很可爱 请给我钱
扫一扫拿红包 → 扫商家收款码 → 花呗支付比红包多1分钱的金额
既可免费赞赏,又可完成支付宝支付任务!
最后修改:2019 年 09 月 24 日 08 : 27 PM
如果觉得我的文章对你有用,请随意赞赏

2 条评论

  1. 于长野   Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 78.0.3904.108(Google Chrome 78.0.3904.108)

    来串门了,博客要长草了!!

    1. 牧瀬くりす   Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 79.0.3945.130(Google Chrome 79.0.3945.130)
      @于长野

      |´・ω・)ノ因为在学新技术,暂时没空写博客了

发表评论