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

字符串回文判断程序异常求助:输出结果始终为false

回文判断代码问题排查与修复

你的代码存在两个核心问题导致始终输出false(甚至无法正常编译):

  • 字符串比较方式错误:Java中==运算符比较的是两个字符串对象的内存引用地址,而非实际内容。即使反转后的字符串和原字符串内容完全一致,它们也是不同的对象,因此emtStr==trimedStr永远会返回false。必须使用equals()方法来比较字符串的实际内容。
  • 语法错误:else分支的return语句缺少返回值,这会导致代码编译失败,程序根本无法运行。

修复后的代码(保留原反转逻辑)

class Solution {
    public boolean isPalindrome(String s) {
        String trimmedStr = s.replace(" ", "").replace(",", "").replace(":", "").toLowerCase();

        String emtStr = "";
        for (int i = trimmedStr.length() - 1; i >= 0; i--) {
            String charStr = String.valueOf(trimmedStr.charAt(i));
            emtStr += charStr;
        }

        // 用equals比较内容,直接返回结果简化代码
        return emtStr.equals(trimmedStr);
    }
}

更高效的优化版本

循环拼接字符串会产生多个中间String对象,推荐使用StringBuilder来提升反转效率:

class Solution {
    public boolean isPalindrome(String s) {
        String trimmedStr = s.replace(" ", "").replace(",", "").replace(":", "").toLowerCase();
        // 利用StringBuilder的reverse方法直接反转
        String reversedStr = new StringBuilder(trimmedStr).reverse().toString();
        return reversedStr.equals(trimmedStr);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:39:53