当我使用 equals 方法比较字符串对象和 stringbuffer 对象时会发生什么?

问题描述

当我们用equals方法比较String和Stringbuffer时会发生什么?

String s1= "121";
System.out.println();

StringBuffer sb = new StringBuffer(s1);
sb.reverse();
System.out.println(sb);

if(s1.equals(sb))
{
    System.out.println("palindrome");
}
else
{
    System.out.println("Not palindrome");
}

我将一个字符串存储到 StringBuffer 中,然后使用反向方法来反转字符串。但是当我在 equalsString 之间使用 StringBuffer 方法时。它给了我一个意想不到的结果。它返回“非回文”。

我该如何解决问题?

解决方法

String 类型的 "equals" 方法首先检查其他类型是否也是 String,在您的情况下它是 StringBuffer,因此它返回 false, 如果要比较内容,请使用:

s1.equals(sb.toString())

s1.contentEquals(sb)