如何比较某人和S如何比较StringBuffer对象和String对象
StringBuffer sb= new StringBuffer("Hello");
String s= "Hello";
s.equals(sb.toString())
所赐的结果假。
如何比较某人和S如何比较StringBuffer对象和String对象
StringBuffer sb= new StringBuffer("Hello");
String s= "Hello";
s.equals(sb.toString())
所赐的结果假。
无法重现:
public class Test {
public static void main(String[] args) {
StringBuffer sb= new StringBuffer("Hello");
String s= "Hello";
System.out.println(s.equals(sb.toString())); // Prints true
}
}
如果你觉得这两个值真的相同,请张贴类似的短,但完整的程序演示问题。我怀疑你会发现问题在其他地方 - 比如字符串或StringBuffer中的一些不可见字符。
对我来说这肯定是返回true
。由于两个字符串的内容(您创建的String对象和StringBuffer返回的String对象相同),equals()
方法不应返回false
。
它会给虚假的,当你能够比较而不使用toString()
对StringBuffer对象。
像:
StringBuffer s=new StringBuffer("abc");
String s1="abc";
System.out.println(" "+s1.equals(s));
使用s.contentEquals(sb);
这将工作。
当我运行你的代码时,它对我来说是正确的。你确定你的想法是怎么回事吗? – Kane 2011-12-13 18:07:28
请通过剪切和粘贴发布您正在使用的实际代码。不要在这里重新输入你的代码。 – 2011-12-13 18:09:49