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

如何统计ArrayList中字符串首字母出现次数并返回高频首字符

解决首字母统计及找出出现次数最多字符的问题

你现在的代码仅实现了提取每个字符串首字母的功能,还缺少统计次数和筛选出现次数最多字符的逻辑。用嵌套for循环可以这样实现需求:

public char getMostCommonStartingLetter() {
    // 处理空列表的情况,避免空指针异常
    if (names == null || names.isEmpty()) {
        return '.';
    }

    char mostCommonLetter = names.get(0).charAt(0);
    int maxCount = 0;

    // 外层循环:遍历每个字符串,取出要统计的首字母
    for (String name : names) {
        char currentLetter = name.charAt(0);
        int currentCount = 0;

        // 内层循环:遍历整个列表,统计当前首字母的出现次数
        for (String innerName : names) {
            if (innerName.charAt(0) == currentLetter) {
                currentCount++;
            }
        }

        // 如果当前字母的次数比记录的最大次数多,就更新统计结果
        if (currentCount > maxCount) {
            maxCount = currentCount;
            mostCommonLetter = currentLetter;
        }
    }

    return mostCommonLetter;
}

代码说明:

  • 先判断列表是否为空,避免后续操作触发空指针异常
  • 初始化mostCommonLetter为列表第一个字符串的首字母,maxCount初始为0
  • 外层循环逐个取出每个字符串的首字母currentLetter
  • 内层循环遍历整个列表,统计currentLetter的出现次数
  • 每次统计完成后,对比当前次数和已记录的最大次数,更新最大次数和对应字母

注意:如果有多个字母出现次数相同且都是最多的情况,这个代码会返回最先遇到的那个字母。如果需要处理这种情况,可以根据需求调整逻辑(比如返回所有次数最多的字母,或者按字母顺序返回)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:02:06