定义一个泛型为String类型的List集合,统计该集合中每个字符出现的次数。

问题遇到的现象和发生背景

定义一个泛型为String类型的List集合,统计该集合中每个字符出现的次数。

例如:集合中有”abcbcd”两个元素,程序最终输出格式为:“a = 1,b = 2,c = 2,d = 1”

List<String> list = new ArrayList<>();
        list.add("abc");
        list.add("bcd");

定义这个集合,然后遍历集合将其转为字符串,并将字符串转为字符数组,判断每个字符个数。


public static void main(String[] args) throws InterruptedException {
        List<String> list = new ArrayList<>();
        list.add("abcbcd");
        //统计每隔字符出现的次数
        Map<Character,Integer> map = new HashMap<>();
        List<Character> characters = new ArrayList<>();
        for(String str : list){
            for(char ch : str.toCharArray()){
                if(! characters.contains(ch)){
                    characters.add(ch);
                }
                map.put(ch,map.getOrDefault(ch,0) + 1);
            }
        }
        //排序
        characters.sort(new Comparator<Character>() {
            @Override
            public int compare(Character o1, Character o2) {
                return o1 - o2;
            }
        });
        //按照指定格式输出
        StringJoiner joiner = new StringJoiner(",");
        for(Character ch : characters){
            joiner.add(ch + "=" + map.get(ch));
        }
        System.out.println(joiner.toString());
    }
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632