String.equals()方法

public boolean equals(Object anObject) {

    if (this == anObject) {

        return true;

    }

    if (anObject instanceof String) {            //字符串是一个引用数据类型,本身是String对象

                                                //先判断anObject是不是String类的一个实例,如果是运行下边的语句

        String anotherString = (String)anObject;//在这里把传进来的anObject这个对象,赋给anotherString (需要类型转换)

        int n = count;                          //这个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++])             //在遍历的过程中如果有不同的就返回false

            return false;

        }

        return true;

        }

    }

    return false;

    }

时间: 2024-10-12 16:25:16

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

深入解析字符串的比较方法:“==”操作符;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。

1:要判断2个字符串变量是否相等,最高效的方法是看它们是否指向相同的内存地址.前面使用RefernceEquals方法来比较.如果2个变量指向的是不同的内存地址,那么就需要逐字符的比较2个字符串的变量,才能确认它们是否相等.由于逐字比较会花费大量的时间,降低性能.所以.NET提供了String.Equals方法来优化比较过程该方法能自动地完成引用比较和值比较. string str1="abc"; string str2="abc"; string str3=Str

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

String.equals()方法的实现代码: 结果截图: 实现方法: String.equals() 方法比较字符串与指定的对象.其结果是true当且仅当参数不为null,并且是一个String对象,这个对象表示相同的字符序列.此方法返回true如果给定对象代表一个字符串,这个字符串,否则返回false.

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

String类中的equals()方法

在Java中,每一个对象都有一个地址空间,在这空间保存着这个对象的值. equals 比较的是值,==比较的地址以及值. 01: public class StringExample02: {03: public static void main (String args[])04:   {05: String s0 = "Programming";06: String s1 = new String ("Programming");07: String s2 =

Java中String.equals()方法的实现代码

java中String类里的String.equals()方法: 源代码: public boolean equals(Object anObject) { //如果是同一个对象 if (this == anObject) { return true; } //如果传递进来的参数是String类的实例 if (anObject instanceof String) { String anotherString = (String)anObject; int n = count;//字符串长度 i

C#、.Net代码精简优化(空操作符(??)、as、string.IsNullOrEmpty() 、 string.IsNullOrWhiteSpace()、string.Equals()、System.IO.Path 的用法)

一.空操作符(??)在程序中经常会遇到对字符串或是对象判断null的操作,如果为null则给空值或是一个指定的值.通常我们会这样来处理: 1.string name = value; if (name == null) { name = string.Empty; } 2.使用三元操作符(? :)对上面对吗进行优化: string name = value == null ? string.Empty : value; 上面的两种方式 的代码不够简洁,?? 操作符来进行进一步优化,?? 操作符意

String的equals方法和==

String类的对象是字符串常量,一切看起来改变了String对象的操作,其实只是改变了字符串引用变量所引用的字符串罢了. Java中的字符串存放在一个公共的存储池中,引用指向存储池中相应的位置,编译器可以让字符串共享,即两个不同的引用,可以指向同一个字符串常量,但该字符串的物理存储实际只有一份. 判断两个字符串是否相等,一定要使用equals方法.“==”只能判断两个引用是否指向同一个字符串,在不同的物理存储位置也可以存储相同的字符串. 实际上,只有字符串常量是共享的,而+或substring

Object类和String类equals方法有什么区别?

相信很多学习过Java的同学都知道,在比较两个String对象的内容是否相同时是使用equals方法的 如:String str1=new String("A"); String str2=new String("B"); String str3=new String("B"); boolean result1= str1.equals(str2); boolean result2= str2.equals(str3); System.out.p