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

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

原文: https://howtodoinjava.com/java/string/string-equals-method/

Java 字符串equals()方法用于将字符串与方法参数对象进行比较。

1. Java String.equals()方法

/**
* @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 程序(区分大小写)。

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()方法的行为方式相同,只是后者不区分大小写

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()方法检查字符串内容。

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文档