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

Java代码遍历字符串时无法检测到“+”符号问题求助

问题原因及修复方案

核心问题

你代码的核心错误是使用!=比较字符串内容,Java 中==和!=判断的是两个字符串对象的内存地址是否相同,而非字符串的实际内容。你通过charAt(i).toString()生成的字符串对象,和常量池里的"+"不是同一个对象,所以c != "+"永远返回true,自然过滤不掉"+"符号。

其他可优化的冗余逻辑

  • 没必要把char类型转成Object再转String,直接对char做比较效率更高
  • 未使用的变量count可以删除

修复后的代码

更高效的char比较方案

public class Main {
    public static void main(String[] args) {
        String r_text = "10 + 10 + 10";
        for (int i = 0; i < r_text.length(); i++){
            char c = r_text.charAt(i);
            if (c != '+'){ // 直接比较char类型,不需要转字符串
                System.out.println(c);
            }
        }
    }
}

字符串比较的正确写法

如果一定要用字符串做判断,需调用equals方法比较内容:

public class Main {
    public static void main(String[] args) {
        String r_text = "10 + 10 + 10";
        for (int i = 0; i < r_text.length(); i++){
            String c = String.valueOf(r_text.charAt(i));
            if (!c.equals("+")){
                System.out.println(c);
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:45:02