将字符串的反向与原始字符串进行比较时它返回 TRUE 而不是 FALSE

问题描述

'''' 将字符串的反向与原始字符串进行比较时它返回 TRUE 而不是 FALSE ''''

    import java.io.*;
    import java.lang.StringBuilder;
    import java.util.*;
    
    public class test {

        public static void main(String[] args) {
            String A = "java";
            StringBuilder str = new StringBuilder();
            str.append(A);
            System.out.println(str);
            System.out.println(str.reverse());
            System.out.println(str == str.reverse());
            if (str.equals(str.reverse())) {
                System.out.println("Yes");
            } else {
                System.out.println("No");
            }
        }

}

解决方法

equals 方法缩短了对象相等性,而不是值相等性。这将实现您的目标。

if (str.toString().equals(str.reverse().toString())) {
    System.out.println("Yes");
} else {
   System.out.println("No");
}