编辑代码

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

public class CountOccurrencesWithMap {
    public static void main(String[] args) {
        // 创建 Scanner 对象以获取用户输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入一组数字
        System.out.println("请输入一组数字,用空格分隔:");

        // 获取用户输入的一行字符串并拆分成数组
        String input = scanner.nextLine();
        String[] inputArray = input.split("\\s+");  // 按空格分割字符串

        // 创建一个 HashMap 来存储数字及其出现次数
        Map<Integer, Integer> frequencyMap = new HashMap<>();

        // 遍历输入的数字,更新频次
        for (String str : inputArray) {
            try {
                // 尝试将字符串转换为整数
                int num = Integer.parseInt(str);

                // 检查 Map 是否包含该数字,如果包含则加 1,否则初始化为 1
                if (frequencyMap.containsKey(num)) {
                    frequencyMap.put(num, frequencyMap.get(num) + 1);
                } else {
                    frequencyMap.put(num, 1);
                }
            } catch (NumberFormatException e) {
                // 捕获到非数字字符时输出提示信息
                System.out.println("警告:无效输入 '" + str + "',该输入将被跳过。");
            }
        }

        // 输出每个数字的出现次数
        System.out.println("\n数字出现次数统计:");
        for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
            System.out.println("数字 " + entry.getKey() + " 出现了 " + entry.getValue() + " 次");
        }

        // 关闭扫描器
        scanner.close();
    }
}