回文使用 java stringbuilder

Palindrome using java stringbuilder

public class testing {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        StringBuilder sb = new StringBuilder();
        StringBuilder sb1 = new StringBuilder();
        sb.append(str);
        sb1.append(str);
        sb1.reverse();
        if(sb == sb1) {
            System.out.println("yes");
        }else if(sb != sb1) {
            System.out.println("no");
        }
        System.out.println(sb.length());
        System.out.println(sb1.length());
        sc.close();
    }
}

一切正常,包括字符串反转,但结果总是没有。

你总是会得到 no 因为 StringBuilder 创建了新对象 & 当你使用 == 进行比较时,它只比较引用而不是 StringBuilder 对象的内容,所以如果你想要比较内容,您必须在对 StringBuilder 对象应用 .toString() 后使用 .equals() 方法。