`
purple12
  • 浏览: 6848 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Java. ==,equals和equalsIgnoreCase

阅读更多

今日分享:

==、equals、equalsIgnoreCase的用法和区别。

    三者都是用来比较两个值是否相等

1.“ ==”用法

 ==:是用来比较两个变量代表的地址是否相等的运算符,结果返回一个boolean值,如果相同就是ture,不同为flase。

例如:

public class demo{
          //创建一个基本类型
           int a1=10;
            int a2=10;
            System.out.println(a1==a2);
}

 运行结果:

ture

上例可以看出:两个基本类型相比较,他们的返回结果为ture,在运算过程中,创建的10放入了内存中的常量区域,由于a1和a2的值相同,他们共同指向了10这个常量区同一个地址,因此结果为ture.

同时,“==”可以用来作基本类型和类类型的比较。

例2.

public class demo2{
            int a1=10;
            Integer a2=10;
            Integer a3=new Integer(10);
           System.out.println(a1==a2);
           System.out.println(a1==a3);
}

 运行结果:

ture
ture

由结果可以看出,返回的值均为ture,在类类型中封装了一个基本类型,当基本类型与类类型进行比较时,会自动的将封装的基本类型数据取出进行计算。

例3.引用例2

                
        System.out.println(a2==a3);
} 运行结果:

 

flase

 由结果可以看出,两个类类型进行计算时,反应出的地址并不相同,这是因为,两个类类型进行计算时,是不会进行自动拆箱的。

 

2. equals用法

    equals是Object中定义的方法,用来比较两个值是否“相等”,在这里的“相等“是可以根据各自的需求自己定义的,各个类可以重写equals方法。

例4.String类中定义的equals方法与我们自己定义的一个Integer类中equals方法的比较

public boolean equals(Object anObject) {
	if (this == anObject) {
	    return true;
	}
	if (anObject instanceof String) {
	    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;
    }

 重写后的Integer

 

public class MyInteger {

	int value;

	public MyInteger(int value) {
		this.value = value;
	}

	public boolean equals(Object obj) {
		if (obj instanceof MyInteger) {
			MyInteger my = (MyInteger) obj;

			return this.value == my.value;
		}

		return false;
	}

 从上述代码可以看出,String类与Integer类所比较的内容不同,因此在重写后所比较的侧重点不同,但他们有所相同之处是在比较之时,首先满足必须是同类型,不是同类型返回一定是flase,如果是同类型,String类中,需要挨个比较各个字符是否相同,如果每个字符比较后都相同,则返回ture。而Integer类中,如果是同类型比较,则进一步需要比较两个值,如果值相同,则返回ture.

 

3.equalsIgnoreCase用法

equalsIgnoreCase方法是String类中定义的方法,只能用来比较字符串,用来比较字符串对应的字符是否相同,与String类中的equals方法类似,但是equalsIgnoreCase方法比较字符串时,忽略大小写。常见用在:检验验证码(不区分大小写),计算机中的全盘搜索(不区分大小写)。

例5.String类中定义的equalsIgnoreCase方法:

public boolean equalsIgnoreCase(String anotherString) {
        return (this == anotherString) ? true :
               (anotherString != null) 
             && (anotherString.count == count) 
             &&regionMatches(true, 0, anotherString, 0, count);
    }

 以上是”==”、equals、equalsIgnoreCase用法及区别。

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    equals与==之间的区别

    在Java编程语言中,`equals`方法与`==`操作符是进行...总结,`equals`方法和`==`操作符在Java中用于不同的目的,理解它们的差异可以帮助开发者更准确地进行对象比较。在处理对象比较时,应根据具体需求选择适当的方法。

    详解 Java 中 equals 和 == 的区别

    在 Java 编程语言中,`equals()` 和 `==` 是两种常见的用于比较对象的运算符,但在处理字符串时,它们的行为有所不同。本文将详细解释它们的区别,并提供示例进行说明。 1. `equals()` 方法 `equals()` 方法是 ...

    字符串比较之 “==”和 “equals”

    在实践中,当比较字符串的内容时,通常推荐使用"equals()"或"equalsIgnoreCase()"(忽略大小写)方法。如果需要考虑字符串的字典顺序,可以使用"compareTo()"。另外,为了避免空指针异常,使用"equals()"之前最好先...

    Java类库复习——java.lang.String

    `charAt(int index)`获取指定位置的字符,`substring(int beginIndex, int endIndex)`截取子字符串,`indexOf(String str)`查找子字符串第一次出现的位置,`equals(Object anObject)`和`equalsIgnoreCase(String ...

    java必刷面试题答案

    本文将详细讲解java基础知识中的几个重要问题,包括JDK和JRE的区别、==和equals的区别、hashCode和equals的关系、final关键字的作用、Math.round函数的作用、String类的基本知识、抽象类和接口的区别、IO流的分类等...

    实验9:Java数组与字符串.doc

    实验结果证明了 Java 中数组和字符串的概念和使用,例如使用 Math 类生成随机数、数组和字符串的概念、String 类和 StringBuffer 类创建字符串对象的区别等。同时,实验还展示了使用 Java 编程语言来实现实际应用中...

    3-JAVA常用API基础类1

    在Java编程中,常用的API基础类包括Scanner、Random和ArrayList。这些类提供了处理输入、生成随机数以及动态存储和操作集合的基本功能。 **Scanner类** 是Java中的一个输入流类,用于从各种输入源(如键盘、文件、...

    Java个人笔记

    Java 是一种广泛使用的面向对象的编程语言,以其跨平台、高效和丰富的库而著名。这篇个人笔记主要涵盖了Java基础知识,特别是字符串操作、IO流、GUI编程以及数据处理相关的类和包。以下是对这些知识点的详细解释: ...

    java脚本开发根据客户IP获取IP的具体地理位置信息

    在Java脚本开发中,获取客户IP地址并进一步获取其具体地理位置信息是一项常见的需求,尤其在网站分析、个性化推荐和安全防护等领域。本教程将详细讲解如何实现这一功能。 首先,我们需要理解IP地址与地理位置之间的...

    JAVA字符串处理函数列表一览.

    `equals()` 和 `equalsIgnoreCase()` 用于比较两个字符串是否相等。 - `equals()` 比较时区分大小写。 - `equalsIgnoreCase()` 比较时不区分大小写。 ```java String s1 = "Hello"; String s2 = "hello"; System.out...

    Java程序设计:chapter07 Java实用包.ppt

    `compareTo(str)`和`compareToIgnoreCase(str)`用于比较字符串,`concat(str)`用于连接两个字符串,`endsWith(suffix)`检查字符串是否以特定后缀结束,`equals(str)`和`equalsIgnoreCase(str)`则用于判断字符串是否...

    Java中字符串的连接和比较.pdf

    Java中的字符串处理是编程中常见的任务,涉及到字符串的连接和比较。本文主要讲解了Java中字符串连接的不同方式以及比较字符串的多种方法。 首先,我们来看字符串的连接。Java提供了多种方式来连接字符串: 1. **...

    Java代码走查注意点

    在 Java 代码中,equals 和 equalsIgnoreCase 是两个重要的字符串比较方法。equals 方法用于比较字符串的内容,而 equalsIgnoreCase 方法用于忽略大小写的比较。例如,可以使用 str.equals("") 方法来比较字符串,而...

    浅谈java 重写equals方法的种种坑

    关于 Java 中重写 equals 方法的种种坑 Java 中的 equals 方法是一种用于比较对象是否相等的方法,它是 Object 类中的一个方法。然而,重写 equals 方法并不是一件简单的事情,因为它需要遵守一些约定,否则可能会...

    Java面试及答案.pdf

    - equalsIgnoreCase(String anotherString)方法与equals方法类似,但它在比较时忽略大小写。 ```java String str1 = "abc"; String str2 = "ABC"; int result = ***pareTo(str2); // 结果为负数,因为 "abc" ...

    Java就业培训教程第六章JavaAPI.pdf

    文件还提到了字符串比较的方法,包括使用`==`运算符和`equals()`方法,以及`equalsIgnoreCase()`方法进行不区分大小写的比较。`indexOf()`方法用于查找字符或子字符串在字符串中的位置。`substring()`方法用于获取...

    java学习源码,很好的资料,很全的资料

    ### Java学习源码知识点概述 #### 一、读写文件操作 在Java中,进行文件的...通过以上分析可以看出,这些代码示例覆盖了Java中关于文件操作和字符串处理的基本概念和技术细节,对于初学者来说是非常宝贵的学习资源。

    java中String的常用方法.doc

    6. `equals()` 和 `equalsIgnoreCase()`:`equals()`用于比较两个字符串的内容是否相同,`equalsIgnoreCase()`忽略大小写进行比较。例如: ```java String s1 = "Hello"; String s2 = new String(s1); System....

    Java常用函数.txt

    根据提供的文件信息,我们可以归纳总结出Java中常用的字符串处理及组件相关的知识点。下面将详细介绍这些功能及其用法。 ### 字符串操作 #### 1. 获取字符串长度 - **方法**: `length()` - **描述**: 用于获取字符...

    java 基础篇.docx

    5. **字符串比较**:使用`s.equals(t)`检查两个字符串`s`和`t`是否相等,`equalsIgnoreCase(t)`忽略大小写进行比较。 6. **==与equals的区别**:对于基本类型,`==`比较值;对于引用类型,`==`比较对象的引用。`...

Global site tag (gtag.js) - Google Analytics