Java中的String类的equals()方法是基于字符串内容来比较给定的两个字符串。如果存在任何不匹配的字符,它将返回false。如果所有字符都匹配,它将返回true。

String的equals()方法重写了Object类的equals()方法。

语法

public boolean equals(Object anotherObject) 

参数

anotherObject: 另一个对象,即与此字符串进行比较。

返回值

如果两个字符串的字符相等,则返回true,否则返回false。

内部实现

public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}

Java String equals()

方法示例 文件名: EqualsExample.java

public class EqualsExample{
public static void main(String args[]){
String s1="javatpoint";
String s2="javatpoint";
String s3="JAVATPOINT";
String s4="python";
System.out.println(s1.equals(s2));//true,因为内容和大小写相同
System.out.println(s1.equals(s3));//false,因为大小写不同
System.out.println(s1.equals(s4));//false,因为内容不同
}}

现在测试一下 输出:

true
false
false

Java String equals()

方法示例 2 equals()方法比较两个字符串,并可用于if-else控制结构。

文件名:EqualsExample2.java

public class EqualsExample2 {
public static void main(String[] args) {
String s1 = "javatpoint";
String s2 = "javatpoint";
String s3 = "Javatpoint";
System.out.println(s1.equals(s2)); // True,因为内容相同
if (s1.equals(s3)) {
System.out.println("both strings are equal");
}else System.out.println("both strings are unequal");
}
}

输出:

true
both strings are unequal

Java String equals() 方法示例 3

我们来看另一个示例,测试列表中存在的字符串的相等性。

文件名:EqualsExample3.java

import java.util.ArrayList;
public class EqualsExample3 {
public static void main(String[] args) {
String str1 = "Mukesh";
ArrayList<String> list = new ArrayList<>();
list.add("Ravi");
list.add("Mukesh");
list.add("Ramesh");
list.add("Ajay");
for (String str : list) {
if (str.equals(str1)) {
System.out.println("Mukesh is present");
}
}
}
}

输出:

Mukesh is present

Java String equals()方法示例 4

equals()方法的内部实现显示可以将任何对象的引用传递给该方法的参数。下面的例子展示了同样的情况。

文件名:EqualsExample4.java

public class EqualsExample4 {
    public static void main(String argvs[]) {
        // Strings
        String str = "a";
        String str1 = "123";
        String str2 = "45.89";
        String str3 = "false";
        Character c = new Character('a');
        Integer i = new Integer(123);
        Float f = new Float(45.89);
        Boolean b = new Boolean(false);

        System.out.println(str.equals(c));
        System.out.println(str1.equals(i));
        System.out.println(str2.equals(f));
        System.out.println(str3.equals(b));
      
        System.out.println(str.equals(c.toString()));
        System.out.println(str1.equals(i.toString()));
        System.out.println(str2.equals(f.toString()));
        System.out.println(str3.equals(b.toString()));
    }
}

输出:

false
false
false
false
true
true
true
true

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想