StringBuffer errors = new StringBuffer("java");
String page = new String("java");
//使用toString
if(page.equals(errors.toString())){
System.out.println("page 和 errors 相同");
}else{
System.out.println("page 和 errors 不相同");
}
// 不使用toString
if(page.equals(errors)){
System.out.println("page 和 errors 相同");
}else{
System.out.println("page 和 errors 不相同");
}
运行结果:
使用toString : 相同
不使用toString :不相同
what? Why?
StringBuffer类是没有重写Object 类的equals()方法,所以StringBuffer类是不能使用equals()方法比较StringBuffer的值。
那该如何比较StringBuffer的值是否相等呢?
可以使用toString() 方法将StringBuffer的内容转换为String 字符串,再使用equals()方法比较。