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

判断字符串"nitin"是否为回文返回false,请求技术排查解决

问题排查与修复:回文判断返回false的原因

嘿,我一眼就瞅出问题所在啦——你这段代码判断回文返回false,核心问题出在StringBuffer的equals方法行为上,咱们拆解来看:

为什么会返回false?

你代码里的sb是StringBuffer对象,rev是从sb转来的String对象。注意:StringBuffer继承自Object,它的equals()方法默认是比较对象的内存引用,而不是字符串内容!哪怕两个对象的字符内容完全一致,只要不是同一个对象实例,equals就会返回false。更别说你这里一个是StringBuffer,一个是String,类型都不同,肯定不相等呀。

修复方案

给你两种简单的修复方式,任选其一就行:

方案1:将StringBuffer转为String后再比较

既然rev已经是String类型,咱们把sb也转成String再用String的equals方法(这个方法是比较内容的):

public static void main(String[] args) { 
    StringBuffer sb = new StringBuffer("nitin"); 
    sb.reverse(); 
    String rev = sb.toString(); 
    System.out.println(sb); 
    System.out.println(rev); 
    // 修复点:把sb转成String再比较
    if (sb.toString().equals(rev)) { 
        System.out.println("true"); 
    } else { 
        System.out.println("false"); 
    } 
}

甚至可以更简洁,直接和原字符串比较,避免多余的变量:

public static void main(String[] args) { 
    String original = "nitin";
    String rev = new StringBuffer(original).reverse().toString();
    System.out.println(original);
    System.out.println(rev);
    if (original.equals(rev)) {
        System.out.println("true");
    } else {
        System.out.println("false");
    }
}

方案2:使用StringBuffer的contentEquals方法

StringBuffer提供了专门用来比较内容的contentEquals()方法,它可以直接和String对象比较内容,不用转类型:

public static void main(String[] args) { 
    StringBuffer sb = new StringBuffer("nitin"); 
    sb.reverse(); 
    String rev = sb.toString(); 
    System.out.println(sb); 
    System.out.println(rev); 
    // 修复点:用contentEquals比较内容
    if (sb.contentEquals(rev)) { 
        System.out.println("true"); 
    } else { 
        System.out.println("false"); 
    } 
}

额外小技巧(Java 11+)

如果你的Java版本是11及以上,String类直接提供了reverse()方法,写起来更清爽:

public static void main(String[] args) { 
    String original = "nitin";
    String rev = original.reverse();
    System.out.println(original);
    System.out.println(rev);
    System.out.println(original.equals(rev) ? "true" : "false");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:42:37