我如何在Java中使用字符的equals()方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在Java中使用字符的equals()方法相关的知识,希望对你有一定的参考价值。
由于字符串是一个对象,您需要使用string.equals(string)
方法来确认两个字符串是否相等。
但是,为什么你使用==
检查两个字符是否相等,char1 == char2
,而不是char1.equals(char2)
?
也许,这将有助于理解==
与equals
的区别。
@Test
public void testCharacterEquals() {
//primitive type uses == operator for equals comparasion
char a1 = 'A';
char a2 = 'A';
if (a1 == a2) {
System.out.println("primitive type comparasion: it's equal");
}
//From Java doc; The Character class wraps a value of the primitive type char in an object. An object of type Character contains a single field whose type is char.
//Object type uses equals method for equals comparasion
Character character1 = 'A';
Character character2 = 'A';
if (character1.equals(character2)) {
System.out.println("object type comparasion: it's equal");
}
}
它取决于使用基本类型,char,int等。并使用像String这样的对象。像int这样的基本类型可以比较1 == 1,如果你互相检查2个对象ObjectA!= ObjectB。
在这里查看这个答案:Primitive vs Object type in Java或在这里:https://chortle.ccsu.edu/java5/Notes/chap09C/ch09C_2.html
引用:
原始数据类型使用少量内存来表示单个数据项。相同基元类型的所有数据具有相同的大小。
例如,基本类型int表示使用32位的整数。 int类型的所有变量都使用32位。
Java中只有八种原始数据类型:byte,short,int,long,float,double,char和boolean。 Java程序无法定义任何其他原始数据类型。
对象是一大块内存,可能包含大量数据以及处理该数据的方法(小程序)。有数千个标准化Java的对象类,程序员可以轻松创建其他类。 (虽然有数以千计的标准课程,但对于本课程,您只需要熟悉十几个课程。)
其中2个字符串是2个不同的对象。因此不是相同的对象而不是相同的字符串。虽然人物可能是相同的。
基本上Java具有基本类型(int,char,short,long,byte ....)和参考数据类型/由其他基元和对象组成的对象。
equals()是所有Java对象的方法。但char不是Java中的Object类型,它是原始类型,它没有任何方法或属性,因此要检查相等性,它们只能使用==
equals运算符。
因为char
是原始类型并且没有实现equals
,所以==
在这种情况下直接比较char
值。其中String
是对象,因此对于对象比较,等于运算符应用于对象的引用,而不是它们指向的对象。当且仅当它们指向同一个对象或两者都指向null时,两个引用是相等的。
如果要比较字符串(以查看它们是否包含相同的字符),则需要使用equals比较字符串。
因此,运算符==
检查基本类型的值的相等性。但它检查对象的引用相等性。如果两个对象由相同的引用引用。 java中的引用和对象是不同的。
以上是关于我如何在Java中使用字符的equals()方法的主要内容,如果未能解决你的问题,请参考以下文章