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

如何统计并显示Java字符串中每个字母的出现次数?

解决Java中句子字母出现次数统计的问题

嘿,你已经迈出了不错的第一步!接下来咱们把字母统计的逻辑补进去就行,我给你一步步拆解:

核心思路

要统计每个字母的出现次数,咱们需要一个键值对结构来存「字母-次数」的对应关系,Java里HashMap<Character, Integer>就很适合干这个活。另外还要注意只统计字母,得先过滤掉非字母的字符。

修改后的完整代码

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

public class LetterCounter {
    public static void main(String[] args) { 
        Scanner s = new Scanner(System.in); 
        System.out.println("type the sentence you want to find the letters of"); 
        String sentence = s.nextLine(); 
        getLetters(sentence); 
        s.close(); // 记得关闭Scanner,养成好习惯
    } 

    public static void getLetters(String sentence) { 
        // 创建HashMap来存储字母和对应的出现次数
        Map<Character, Integer> letterCountMap = new HashMap<>();
        char ch[] = sentence.toCharArray(); 

        for (int i = 0; i < ch.length; i++) { 
            char currentChar = ch[i];
            // 只处理字母字符
            if (Character.isLetter(currentChar)) {
                // 可选:如果不区分大小写,统一转成小写(或大写)
                // currentChar = Character.toLowerCase(currentChar);
                
                // 判断Map里是否已经有这个字母
                if (letterCountMap.containsKey(currentChar)) {
                    // 有就把次数加1
                    letterCountMap.put(currentChar, letterCountMap.get(currentChar) + 1);
                } else {
                    // 没有就初始化为1
                    letterCountMap.put(currentChar, 1);
                }
            }
        }

        // 输出统计结果
        System.out.println("\n字母出现次数统计:");
        for (Map.Entry<Character, Integer> entry : letterCountMap.entrySet()) {
            System.out.println("字母 '" + entry.getKey() + "' 出现了 " + entry.getValue() + " 次");
        }
    }
}

关键部分解释

  • 过滤非字母:用Character.isLetter(currentChar)判断当前字符是否是字母,自动跳过标点、空格这些非字母内容。
  • 大小写处理:如果不需要区分大小写,把代码里注释的那行打开,将字符统一转成小写或大写,这样'A'和'a'会被统计成同一个字母。
  • HashMap统计逻辑:遍历每个字母时,检查Map里有没有这个键,有就累加次数,没有就新增键值对初始化次数为1。
  • 结果输出:遍历HashMap的entrySet,逐个打印字母和对应的次数。

这样运行代码后,输入任意句子,就能得到每个字母的出现次数啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:30:50