# Java `String.equals()`方法 – 字符串比较

> 原文： [https://howtodoinjava.com/java/string/string-equals-method/](https://howtodoinjava.com/java/string/string-equals-method/)

[Java 字符串](https://howtodoinjava.com/java-string/)`equals()`方法用于将字符串与方法参数对象进行比较。

## 1\. Java `String.equals()`方法

```java
/**
* @param  anObject - The object to compare
* @return true -  if the non-null argument object represents the same sequence of characters to this string
*         false - in all other cases       
*/
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;
}

```

1.  **字符串**类将覆盖`Object`类中的`equals()`方法。 相等性以**区分大小写**的方式完成。
2.  使用`equals()`方法检查字符串内容的相等性。
3.  不要使用`'=='`运算符。 它检查对象引用，这在大多数情况下是不希望的。
4.  允许将`null`传递给方法。 它将返回`false`。
5.  使用`equalsIgnoreCase()`方法以不区分大小写的方式检查相等的字符串。

## 2\. Java `String.equals()`方法示例

检查两个字符串是否相等的 Java 程序（区分大小写）。

```java
public class Main 
{
    public static void main(String[] args) 
    {
        String blogName = "howtodoinjava.com";
        String authorName = "Lokesh gupta";

        //1 - check two strings for same character sequence
        boolean isEqualString = blogName.equals(authorName);    //false

        //2
        isEqualString = blogName.equals("howtodoinjava.com");   //true

        //3
        isEqualString = blogName.equals(null);                  //false

        //4 - case-sensitive
        isEqualString = blogName.equals("HOWTODOINJAVA.COM");   //false
    }
}

```

## 3\. Java `String.equalsIgnoreCase()`示例

检查两个字符串是否相等的 Java 程序（不区分大小写）。 请注意，`equals()`和`equalsIgnoreCase()`方法的行为方式相同，只是后者*不区分大小写*。

```java
public static void main(String[] args) 
    {
        String blogName = "howtodoinjava.com";
        String authorName = "Lokesh gupta";

        //1 - check two strings for same character sequence
        boolean isEqualString = blogName.equalsIgnoreCase(authorName);    //false

        //2
        isEqualString = blogName.equalsIgnoreCase("howtodoinjava.com");   //true

        //3
        isEqualString = blogName.equalsIgnoreCase(null);                  //false

        //4 - case-insensitive
        isEqualString = blogName.equalsIgnoreCase("HOWTODOINJAVA.COM");   //TRUE
    }
}

```

## 4\. Java 中`==`和`equals`之间的区别

如前所述，`==`运算符检查相同的对象引用。 它不检查字符串内容。

而`equals()`方法检查字符串内容。

```java
public class Main 
{
    public static void main(String[] args) 
    {
        String blogName1 = new String("howtodoinjava.com");
        String blogName2 = new String("howtodoinjava.com");

        boolean isEqual1 = blogName1.equals(blogName2);         //true
        boolean isEqual2 = blogName1 == blogName2;              //false
    }
}

```

学习愉快！

参考：

[Java `String`文档](https://docs.oracle.com/javase/9/docs/api/java/lang/String.html)