利用双列集合 来统计 字符串中字符的个数

package com.itheima.demo10maptest;


import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
 * 输入一个字符串,统计该字符出现的字数
 */

/**
 * @author ChenY@itheima.com
 * @date 2022/7/28 19:52
 */
public class Test {
    public static void main(String[] args) {
        System.out.println("请输入一个字符串: ");
        /** 定义map双列集合,借助双列集合的键重复 值会被覆盖的原理  */
        HashMap<Character, Integer> hmMap = new HashMap<>(16);
        String str = new Scanner(System.in).next();

        /** 循环遍历出字符串中的每个字符*/
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            /** 判断双列集合中,是否存在该字符
             * 若存在,则将该键对应的值取出来,+1,
             * 若不存在,则将该字符作为键存入到双利集合中去,将键对应的值+1*/
            boolean flag = hmMap.containsKey(ch);
            if (flag) {
                /** 该字符在集合中已经存在 取出键对应的值*/
                Integer value = hmMap.get(ch);
                value++;
                /** 在将ch 和value作为键和值存储到集合中去*/
                hmMap.put(ch, value);

            } else {
                /** 该字符在集合中不存在,要存进集合 个数+1*/
                hmMap.put(ch, 1);

            }

        }
        System.out.println(hmMap);


    }
}

总结: 利用双集合的 键和值的特点 键重复了值就会被覆盖
1.遍历字符串中的字符
2.判断字符是否在双列集合中
3.若在 取出该字符(键)对应的值,将值+1,在重型将键和值put 到集合中去
4.若不在,则只需将该字符作为键,1作为值 put到集合中去

#你为什么选择硬件行业#
全部评论
这个代码居然结合了数学思想,棒棒的
点赞 回复 分享
发布于 2022-08-03 23:18
楼主厉害,代码写的杠杠的啊
点赞 回复 分享
发布于 2022-07-29 20:26

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务