如何使用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
相关产品推荐
相关产品推荐

