这个问题在这里已有答案:
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 回答
StringBuffer
将与equals进行参考比较 . 由于它们不是同一个对象,因此比较返回false .将您的代码更改为
这将比较字符串的值 .
另外:JavaScript和Java不是一回事 .
您正在比较两个
StringBuffer
instantes,而不是字符串本身 .尝试添加
.toString()
将它们转换为String .StringBuffer不会覆盖String中的equals(),它的equals()方法是从java.lang.Object继承的方法,当且仅当“==”为真时返回true . 也就是说,它比较了两个不相等的对象的引用 .