【问题标题】:while comparing the reverse of the string to the original It return TRUE instead of FALSE [duplicate]在将字符串的反向与原始字符串进行比较时它返回 TRUE 而不是 FALSE [重复]
【发布时间】:2021-10-05 07:43:42
【问题描述】:

'''' 在将字符串的反向与原始字符串进行比较时它返回 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");
            }
        }

}

【问题讨论】:

    标签: java string reverse stringbuilder


    【解决方案1】:

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

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

    【讨论】:

    • 哦,所以我们需要把StringBuilder的str转成普通的String。???
    • 是的,或者使用不同的 StringBuilder。如果您查看大多数 equals() 方法,第一行通常是直接的对象比较。由于您正在比较同一个对象,而不是该对象的值,因此它返回 true。
    猜你喜欢
    • 1970-01-01
    • 2020-03-23
    • 2020-02-08
    • 1970-01-01
    • 2018-02-12
    • 2021-07-10
    • 1970-01-01
    • 2019-06-04
    • 2016-01-29
    相关资源
    最近更新 更多