You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java实现给定段落中各字符的出现频率统计功能

统计段落字符出现频率的Java正确实现

实现思路

  • 用HashMap<Character, Integer>存储字符和对应的出现次数
  • 遍历输入字符串的每个字符,更新对应计数
  • 遍历哈希表输出每个字符的出现频率

完整可运行代码

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

public class Solution {
    // 统计字符频率的方法
    static void countCharFrequency(String paragraf) {
        // 存储字符和对应出现次数
        Map<Character, Integer> frequencyMap = new HashMap<>();
        int length = paragraf.length();
        for (int i = 0; i < length; i++) {
            char currentChar = paragraf.charAt(i);
            // 更新计数:已存在就加1,不存在就初始化为1
            frequencyMap.put(currentChar, frequencyMap.getOrDefault(currentChar, 0) + 1);
        }
        // 输出结果
        System.out.println("字符频率统计结果:");
        for (Map.Entry<Character, Integer> entry : frequencyMap.entrySet()) {
            char c = entry.getKey();
            int count = entry.getValue();
            // 特殊不可见字符转义显示
            if (c == ' ') {
                System.out.println("'空格' : " + count + " 次");
            } else if (c == '\t') {
                System.out.println("'制表符' : " + count + " 次");
            } else if (c == '\n') {
                System.out.println("'换行符' : " + count + " 次");
            } else {
                System.out.println("'" + c + "' : " + count + " 次");
            }
        }
    }

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要统计的段落:");
        String str = in.nextLine();
        in.close();
        countCharFrequency(str);
    }
}

自定义调整说明

  • 如需不区分大小写统计,存入哈希表前可将字符统一转大写/小写,示例:currentChar = Character.toLowerCase(currentChar);
  • 如需忽略空格、标点等特殊字符,统计前加判断条件过滤即可
  • 如需按出现次数排序输出,可将哈希表的entry存入列表后自定义排序规则调整输出顺序

内容的提问来源于stack exchange,提问作者Reimhagen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:15:04