首页 文章

输出应该是字符串匹配但它没有[重复]

提问于
浏览
-1

这个问题在这里已有答案:

public class reverse_string {public static void main(String [] args){

StringBuffer s1 =  new StringBuffer("madam");
    System.out.print(s1);
    StringBuffer s2 = new StringBuffer(s1.reverse());
    System.out.print("\n"+s2);


    if(s1.equals(s2))
    {
        System.out.print("\nreal string and reverse string are matched");
    }
    else
    {
        System.out.print("\nreal string and reverse string are not matched");
    }

}}

3 回答

  • 0

    StringBuffer 将与equals进行参考比较 . 由于它们不是同一个对象,因此比较返回false .

    将您的代码更改为

    s1.toString().equals(s2.toString())
    

    这将比较字符串的值 .

    另外:JavaScript和Java不是一回事 .

  • 0

    您正在比较两个 StringBuffer instantes,而不是字符串本身 .

    尝试添加 .toString() 将它们转换为String .

  • 0

    StringBuffer不会覆盖String中的equals(),它的equals()方法是从java.lang.Object继承的方法,当且仅当“==”为真时返回true . 也就是说,它比较了两个不相等的对象的引用 .

相关问题