2011-12-13 34 views
0

如何比较某人和S如何比较StringBuffer对象和String对象

StringBuffer sb= new StringBuffer("Hello"); 
String s= "Hello"; 

s.equals(sb.toString())所赐的结果

+0

当我运行你的代码时,它对我来说是正确的。你确定你的想法是怎么回事吗? – Kane 2011-12-13 18:07:28

+0

请通过剪切和粘贴发布您正在使用的实际代码。不要在这里重新输入你的代码。 – 2011-12-13 18:09:49

回答

11

无法重现:

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中的一些不可见字符。

1

对我来说这肯定是返回true。由于两个字符串的内容(您创建的String对象和StringBuffer返回的String对象相同),equals()方法不应返回false

0

它会给虚假的,当你能够比较而不使用toString()对StringBuffer对象。

像:

 StringBuffer s=new StringBuffer("abc"); 
    String s1="abc"; 
    System.out.println(" "+s1.equals(s)); 
0

使用s.contentEquals(sb); 这将工作。