20210627统计字符串中每一个字符出现的次数

 * 思路:
 *     1:使用Scanner获取用户输入的一个字符串
 *     2:下面使用HashMap集合以键值对记录每个字符及对应的数量
 *     3:首先需要遍历字符串,获取每一个字符,由两种方式:
 *       i.String类的toCharArray方法,把字符串转换为数组,遍历数组即可。
 *       ii.String类的length方法加上charAt(索引)来获取每一个字符。
 *     4:使用Map集合中方法判断获取到的字符串(key)是否存储在Map集合中
 *        i.使用Map集合中containsKey(获取的字符串)方法,返回布尔值
 *            true:字符存在
 *                    则通过字符(key),获取value(统计个数),
 *                    把value++,
 *                    把新的value存储到Map集合
 *            false:字符不存在
 *                    则把字符作为key,把1作为value存储到Map集合
 *        ii.或也可以使用Map集合中get(key)方法
 *           返回null,表示key不存在,把对应键值对加入集合
 *           返回不是null,则找到key对应的value自增后再存入集合。

public class Demo9_lianxi {
    public static void main(String[] args) {
        //1.使用Scanner获取用户输入的字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
        //2.创建Map集合,key是字符串的字符,value是字符个数
        HashMap<Character, Integer> map = new HashMap<>();
        //3.遍历字符串,获取每一个字符
        for (char c:str.toCharArray()){
            //4.使用获取到的字符,去Map集合判断key是否存在
            if (map.containsKey(c)){
                //key存在
                Integer value = map.get(c);
                value++;
                map.put(c,value);//覆盖之前的键值对
            }else{
                //key不存在
                map.put(c,1);
            }
        }
        /*for (Character key : map.keySet()) {
            Integer value = map.get(key);
            System.out.println(key+":"+value);
        }*/
        System.out.println(map);
        /*输入asdfgasdfghj
        * 输出{a=2, s=2, d=2, f=2, g=2, h=1, j=1}
        * */
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40454863/article/details/118282374
今日推荐