今日分享:
==、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)
&®ionMatches(true, 0, anotherString, 0, count);
}
以上是”==”、equals、equalsIgnoreCase用法及区别。
分享到:
相关推荐
在Java编程语言中,`equals`方法与`==`操作符是进行...总结,`equals`方法和`==`操作符在Java中用于不同的目的,理解它们的差异可以帮助开发者更准确地进行对象比较。在处理对象比较时,应根据具体需求选择适当的方法。
在 Java 编程语言中,`equals()` 和 `==` 是两种常见的用于比较对象的运算符,但在处理字符串时,它们的行为有所不同。本文将详细解释它们的区别,并提供示例进行说明。 1. `equals()` 方法 `equals()` 方法是 ...
在实践中,当比较字符串的内容时,通常推荐使用"equals()"或"equalsIgnoreCase()"(忽略大小写)方法。如果需要考虑字符串的字典顺序,可以使用"compareTo()"。另外,为了避免空指针异常,使用"equals()"之前最好先...
`charAt(int index)`获取指定位置的字符,`substring(int beginIndex, int endIndex)`截取子字符串,`indexOf(String str)`查找子字符串第一次出现的位置,`equals(Object anObject)`和`equalsIgnoreCase(String ...
本文将详细讲解java基础知识中的几个重要问题,包括JDK和JRE的区别、==和equals的区别、hashCode和equals的关系、final关键字的作用、Math.round函数的作用、String类的基本知识、抽象类和接口的区别、IO流的分类等...
实验结果证明了 Java 中数组和字符串的概念和使用,例如使用 Math 类生成随机数、数组和字符串的概念、String 类和 StringBuffer 类创建字符串对象的区别等。同时,实验还展示了使用 Java 编程语言来实现实际应用中...
在Java编程中,常用的API基础类包括Scanner、Random和ArrayList。这些类提供了处理输入、生成随机数以及动态存储和操作集合的基本功能。 **Scanner类** 是Java中的一个输入流类,用于从各种输入源(如键盘、文件、...
Java 是一种广泛使用的面向对象的编程语言,以其跨平台、高效和丰富的库而著名。这篇个人笔记主要涵盖了Java基础知识,特别是字符串操作、IO流、GUI编程以及数据处理相关的类和包。以下是对这些知识点的详细解释: ...
在Java脚本开发中,获取客户IP地址并进一步获取其具体地理位置信息是一项常见的需求,尤其在网站分析、个性化推荐和安全防护等领域。本教程将详细讲解如何实现这一功能。 首先,我们需要理解IP地址与地理位置之间的...
`equals()` 和 `equalsIgnoreCase()` 用于比较两个字符串是否相等。 - `equals()` 比较时区分大小写。 - `equalsIgnoreCase()` 比较时不区分大小写。 ```java String s1 = "Hello"; String s2 = "hello"; System.out...
`compareTo(str)`和`compareToIgnoreCase(str)`用于比较字符串,`concat(str)`用于连接两个字符串,`endsWith(suffix)`检查字符串是否以特定后缀结束,`equals(str)`和`equalsIgnoreCase(str)`则用于判断字符串是否...
Java中的字符串处理是编程中常见的任务,涉及到字符串的连接和比较。本文主要讲解了Java中字符串连接的不同方式以及比较字符串的多种方法。 首先,我们来看字符串的连接。Java提供了多种方式来连接字符串: 1. **...
在 Java 代码中,equals 和 equalsIgnoreCase 是两个重要的字符串比较方法。equals 方法用于比较字符串的内容,而 equalsIgnoreCase 方法用于忽略大小写的比较。例如,可以使用 str.equals("") 方法来比较字符串,而...
关于 Java 中重写 equals 方法的种种坑 Java 中的 equals 方法是一种用于比较对象是否相等的方法,它是 Object 类中的一个方法。然而,重写 equals 方法并不是一件简单的事情,因为它需要遵守一些约定,否则可能会...
- equalsIgnoreCase(String anotherString)方法与equals方法类似,但它在比较时忽略大小写。 ```java String str1 = "abc"; String str2 = "ABC"; int result = ***pareTo(str2); // 结果为负数,因为 "abc" ...
文件还提到了字符串比较的方法,包括使用`==`运算符和`equals()`方法,以及`equalsIgnoreCase()`方法进行不区分大小写的比较。`indexOf()`方法用于查找字符或子字符串在字符串中的位置。`substring()`方法用于获取...
### Java学习源码知识点概述 #### 一、读写文件操作 在Java中,进行文件的...通过以上分析可以看出,这些代码示例覆盖了Java中关于文件操作和字符串处理的基本概念和技术细节,对于初学者来说是非常宝贵的学习资源。
6. `equals()` 和 `equalsIgnoreCase()`:`equals()`用于比较两个字符串的内容是否相同,`equalsIgnoreCase()`忽略大小写进行比较。例如: ```java String s1 = "Hello"; String s2 = new String(s1); System....
根据提供的文件信息,我们可以归纳总结出Java中常用的字符串处理及组件相关的知识点。下面将详细介绍这些功能及其用法。 ### 字符串操作 #### 1. 获取字符串长度 - **方法**: `length()` - **描述**: 用于获取字符...
5. **字符串比较**:使用`s.equals(t)`检查两个字符串`s`和`t`是否相等,`equalsIgnoreCase(t)`忽略大小写进行比较。 6. **==与equals的区别**:对于基本类型,`==`比较值;对于引用类型,`==`比较对象的引用。`...