计算一个字符串中每个字符出现次数

package cn.itcast.day12.demo03;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName Demo09.java
 * @Description TODO 计算一个字符中每个字符出现的次数
 * @createTime 2021年09月25日 18:13:00
 */

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

/**
 * 分析:
 *      1.使用Scanner获取用户输入的字符串
 *      2.创建Map集合 key是字符串中的字符 value是字符的个数
 *      3.遍历字符串 获取每一个字符串
 *      4.使用获取到的字符,去Map集合中判断key是否存在
 *          key存在:
 *              通过字符(key),获取value(字符个数)
 *              value++;
 *              map.put(key,value);
 *          key不存在:
 *          put(key,1);
 *        5.遍历Map集合 输出结果
 *
 */
public class Demo09 {
    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存在:
                // *              通过字符(key),获取value(字符个数)
                Integer value = map.get(c);
                value++;
                map.put(c,value);
            }else {
                // key不存在:
                map.put(c,1);
            }
        }
        //5.遍历Map集合 输出结果 使用的是通过键找值的方式去遍历
        Set<Character> set = map.keySet();
        for (Character key : set) {
            Integer value = map.get(key);
            System.out.println(key + " = " + value);
            /**
             * 请输入字符串
             * aaabbbccc
             * a = 3
             * b = 3
             * c = 3
             */
        }

    }
}

猜你喜欢

转载自blog.csdn.net/nanyangnongye/article/details/120494813