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
相关产品推荐
相关产品推荐

