String类的equals方法

时间:2022-07-22
本文章向大家介绍String类的equals方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
先上代码  
public boolean equals(Object anObject) {
    if (this == anObject) {    //1.比地址
        return true;
    }
    if (anObject instanceof String) {    //2.比对象类型
        String anotherString = (String)anObject;
        int n = value.length;
        if (n == anotherString.value.length) {    //3.比长度
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            while (n-- != 0) {    //4.比值
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            return true;
        }
    }
    return false;
}

字符串比较方法可以看出从大方向到小方向对比

1.同一个对象? 比引用地址 如果地址都一样,即一个对象 直接返回true

2.同一种对象? 地址不同,instanceof 看是不是String类型,如果不是肯定不同

3.值长度一样? 地址不同 但是是String类 则比较一下两个字符串的值的长度 长度不同则一定不相同

4.值内容一样? 长度也相同时,才会对值从索引为0到最后逐个对比,若有任一个位置不相同则返回false