读书人

String和StringBuffer不能比较么?该怎

发布时间: 2012-05-22 18:18:54 作者: rapoo

String和StringBuffer不能比较么?

Java code
public class StringMethod {    public static void main(String [] args) {        String s1 = "hello world";        StringBuffer s2 = new StringBuffer("hello world");        System.out.println(s1.equals(s2));    }// [color=#FF0000]为什么返回 false???    [/color]}


[解决办法]
String和StringBuffer比较只会是对象的内存地址。

你如果想要比较类容。你就要通过StringBuffer的toString()方法。得到String类型,然后再与String进行比较。
[解决办法]
探讨
String和StringBuffer比较只会是对象的内存地址。

你如果想要比较类容。你就要通过StringBuffer的toString()方法。得到String类型,然后再与String进行比较。

[解决办法]
Java code
public boolean equals(Object anObject) {    if (this == anObject) {//直接比较引用是否相同,相同返回true        return true;    }    if (anObject instanceof String) {//看传入类型是否是String,是的话比较String的内容,就是先看两个String类型的长度是否相同,不同跳出返回false,相同再比较组成String的char[]每个是否相同一样返回true        String anotherString = (String)anObject;        int n = count;        if (n == anotherString.count) {        char v1[] = value;        char v2[] = anotherString.value;        int i = offset;        int j = anotherString.offset;        while (n-- != 0) {            if (v1[i++] != v2[j++])            return false;        }        return true;        }    }    return false;    } 

读书人网 >J2SE开发

热点推荐