如何在Java中使用字符的equals()方法

时间:2018-09-01 08:57:10

标签: java char

由于字符串是一个对象,因此您需要使用string.equals(string)方法来确认两个字符串相等。

但是,为什么使用==来检查两个字符是否相等,char1 == char2而不是char1.equals(char2)

5 个答案:

答案 0 :(得分:0)

这取决于使用基本类型,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中只有八种原始数据类型:字节,短型,整型,   long,float,double,char和boolean。 Java程序无法定义   任何其他原始数据类型。

     

对象是一大块内存,可能包含一个   大量数据以及要处理的方法(小的程序)   该数据。有成千上万个标准的对象类   使用Java,程序员可以轻松创建其他类。   (尽管有成千上万的标准课程,   只需熟悉一打左右的课程即可。)

其中2个字符串是2个不同的对象。因此,不同的对象和不同的字符串。虽然字符可能相同。

答案 1 :(得分:0)

基本上,Java具有基本类型(int,char,short,long,byte等。) 和由其他原语和对象组成的参考数据类型/对象。

equals()是所有Java对象的方法。但是char不是Java中的Object类型,它是原始类型,它没有任何方法或属性,因此要检查是否相等,可以使用== equals运算符。

答案 2 :(得分:0)

也许,这将有助于理解==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");
    }
  }

答案 3 :(得分:0)

由于char是原始类型,并且没有实现equals,因此==在这种情况下直接比较char的值。其中String是对象,因此为了进行对象比较,将等于运算符应用于对象的引用,而不是它们所指向的对象。当且仅当两个引用指向同一个对象或两个指向空时,两个引用才相等。

如果要比较字符串(以查看它们是否包含相同的字符),则需要使用等号比较字符串。

因此,运算符==检查基本类型上的值是否相等。但它检查对象的引用相等性。如果两个对象被相等的引用引用。 Java中的引用和对象不同。

答案 4 :(得分:0)

如果需要,您也可以使用比较器。

 public static boolean compareChars(char c1, char c2){
        int comp = Character.compare(c1, c2);
        if(comp>0){
            return false;
        }else{
            return true;
        }
 }
 public static void main (){
   boolean b1 = compareChars('A', 'A') //return true;
   boolean b2 = compareChars('A', 'C') //return false;

 }