String.equals(Object anObject)方法

首先注意,equals()方法接受的是Object类型的对象,并不一定是String类型。

public boolean equals(Object anObject) {
        //两个对象地址是否一样,是,肯定是同一个对象
        if (this == anObject) {
            return true;
        }
        //目前这个对象是否是String的实例(这也是为什么犯法传入的是Object对象)
        if (anObject instanceof String) {
            //强转为String类型
            String anotherString = (String)anObject;
            int n = value.length;
            //两个字符串长度是否一样,不一样肯定不相等
            if (n == anotherString.value.length) {
                //字符串长度一样,比较里面得字符是否一对一的相同
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }
时间: 2024-10-14 06:59:21

String.equals(Object anObject)方法的相关文章

动手动脑:String.equals()的使用方法

public class StringEquals { /** * @param args the command line arguments */ public static void main(String[] args) { String s1=new String("Hello"); String s2=new String("Hello"); System.out.println(s1==s2);//false System.out.println(s1

String.format(String format, Object... args)方法详解

很多次见到同事使用这个方法,同时看到https://blog.csdn.net/qq_27298687/article/details/68921934这位仁兄写的非常仔细,我也记录一下,好加深印象. 这个是从java5的时候添加进去的方法. /** * Returns a formatted string using the specified format string and * arguments. * * <p> The locale always used is the one r

05_动手动脑之String.equals()方法

Question: 请查看String.equals()方法的实现代码,注意学习其实现方法. Answer: java中的String.equals()方法的实现代码: equals()法是根类Object中的方法.源代码如下: public boolean equals(Object obj){return (this == obj);} 可见默认的equals方法,直接调用==,比较对象地址. 不同的子类,可以重写此方法,进行两个对象的equals的判断.String类源码中重写的equal

String.equals()实现方法

public class StringEquals { /** * @param args the command line arguments */ public static void main(String[] args) { String s1=new String("Hello");  //构造函数 String s2=new String("Hello"); System.out.println(s1==s2); //所指向地址为常量 false Sys

深度解析java.lang.String类的equal(Object obj)方法

背景:最近在研究静态扫描的东西,遇到一个规则:"equals(Object obj)" should be overridden along with the "compareTo(T obj)" method 然后就想深度扒一扒equals和compareTo有什么区别 首先先来看下java.lang.String这个类下面的equals方法是如何实现的. public boolean equals(Object anObject) { if (this == a

String类型中ToString hashCode equals compareTo等方法的经典实现

private final char value[]; private int hash; // Default to 0 public String(String original) { this.value = original.value; this.hash = original.hash; } public String(char value[]) { this.value = Arrays.copyOf(value, value.length); } String: |--Compa

String.equals()方法

public boolean equals(Object anObject) {     if (this == anObject) {         return true;     }     if (anObject instanceof String) {            //字符串是一个引用数据类型,本身是String对象                                                 //先判断anObject是不是String类的一个实例,如

java-深入篇-String,Object,正则表达式

我们前面已经介绍了java的基础知识点以及简单的OOP面向对象编程思想.也就意味着你已经开始走入了java的世界里.但目前的你,就仿佛一个门外汉,刚刚才把脚跨进这个宝库里,还没来得及去发现这个宝库里面的珍宝呢.不过,也不用担心,成功总是留给有准备的人滴,而我们已经为你做好了这些准备,接下来,就让我们一起去深入了解java这个宝库,去发现更多有趣的东西吧.就好比我们今天的主题: String.StringBuffer.StringBuilder类 我们在java基础篇里面就曾介绍过String的知

Java提高篇——equals()与hashCode()方法详解

java.lang.Object类中有两个非常重要的方法: 1 2 public boolean equals(Object obj) public int hashCode() Object类是类继承结构的基础,所以是每一个类的父类.所有的对象,包括数组,都实现了在Object类中定义的方法. equals()方法详解 equals()方法是用来判断其他的对象是否和该对象相等. equals()方法在object类中定义如下: public boolean equals(Object obj)