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

以下统计字符串中字符出现次数的Java代码实现是否正确?

你的代码实现是错误的,我们来分析问题并修正

这个实现的核心逻辑完全不成立,根本无法正确统计字符'i'的出现次数,下面拆解问题所在:

问题点分析

  • 统计逻辑完全错误:你试图通过拼接带空格的匹配字符,再取trim后字符串的长度来计数,这是完全错误的思路。比如当输入中有2个'i'时,你的代码最终输出的newResult.length()会是1(此时newResult为"i"),但实际次数是2,结果完全不符。
  • 变量赋值顺序颠倒:每次匹配到'i'时,你先将result.trim()赋值给newResult,再更新result,这导致newResult永远落后一次匹配,无法正确统计最后一次的匹配结果。
  • 冗余且易出错的字符串操作:把单个字符转成带空格的字符串再trim,属于完全多余的操作,既降低代码效率,又容易引入不必要的bug。

正确的实现方式

这里提供几种简洁可靠的写法,你可以根据场景选择:

方法1:基础遍历计数(最直观)

直接遍历字符串的每个字符,匹配到目标字符就递增计数器:

// program to find number of occurrences of "i" in string
public class NumberOfChar {
    public static void main(String args[]) {
        String input = "this is String";
        char target = 'i'; // 用char类型更直接,避免字符串比较的开销
        int count = 0;
        
        for (int i = 0; i < input.length(); i++) {
            if (input.charAt(i) == target) {
                count++;
            }
        }
        
        System.out.println("Number of occurrences: " + count);
    }
}

方法2:Java 8流操作(简洁优雅)

利用Java 8的Stream API实现一行式计数:

// program to find number of occurrences of "i" in string
public class NumberOfChar {
    public static void main(String args[]) {
        String input = "this is String";
        char target = 'i';
        
        long count = input.chars()
                          .filter(c -> c == target)
                          .count();
        
        System.out.println("Number of occurrences: " + count);
    }
}

方法3:替换法(代码量最少)

将所有非目标字符替换为空,剩余字符串的长度就是目标字符的次数:

// program to find number of occurrences of "i" in string
public class NumberOfChar {
    public static void main(String args[]) {
        String input = "this is String";
        String target = "i";
        
        int count = input.replaceAll("[^" + target + "]", "").length();
        
        System.out.println("Number of occurrences: " + count);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:04:03