问题描述
当我们用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
中,然后使用反向方法来反转字符串。但是当我在 equals
和 String
之间使用 StringBuffer
方法时。它给了我一个意想不到的结果。它返回“非回文”。
我该如何解决问题?
解决方法
String 类型的 "equals" 方法首先检查其他类型是否也是 String,在您的情况下它是 StringBuffer,因此它返回 false, 如果要比较内容,请使用:
s1.equals(sb.toString())
或
s1.contentEquals(sb)