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

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

1. Java String.equals()方法

  1. /**
  2. * @param anObject - The object to compare
  3. * @return true - if the non-null argument object represents the same sequence of characters to this string
  4. * false - in all other cases
  5. */
  6. public boolean equals(Object anObject) {
  7. if (this == anObject) {
  8. return true;
  9. }
  10. if (anObject instanceof String) {
  11. String anotherString = (String)anObject;
  12. int n = value.length;
  13. if (n == anotherString.value.length) {
  14. char v1[] = value;
  15. char v2[] = anotherString.value;
  16. int i = 0;
  17. while (n-- != 0) {
  18. if (v1[i] != v2[i])
  19. return false;
  20. i++;
  21. }
  22. return true;
  23. }
  24. }
  25. return false;
  26. }
  1. 字符串类将覆盖Object类中的equals()方法。 相等性以区分大小写的方式完成。
  2. 使用equals()方法检查字符串内容的相等性。
  3. 不要使用'=='运算符。 它检查对象引用,这在大多数情况下是不希望的。
  4. 允许将null传递给方法。 它将返回false
  5. 使用equalsIgnoreCase()方法以不区分大小写的方式检查相等的字符串。

2. Java String.equals()方法示例

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

  1. public class Main
  2. {
  3. public static void main(String[] args)
  4. {
  5. String blogName = "howtodoinjava.com";
  6. String authorName = "Lokesh gupta";
  7. //1 - check two strings for same character sequence
  8. boolean isEqualString = blogName.equals(authorName); //false
  9. //2
  10. isEqualString = blogName.equals("howtodoinjava.com"); //true
  11. //3
  12. isEqualString = blogName.equals(null); //false
  13. //4 - case-sensitive
  14. isEqualString = blogName.equals("HOWTODOINJAVA.COM"); //false
  15. }
  16. }

3. Java String.equalsIgnoreCase()示例

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

  1. public static void main(String[] args)
  2. {
  3. String blogName = "howtodoinjava.com";
  4. String authorName = "Lokesh gupta";
  5. //1 - check two strings for same character sequence
  6. boolean isEqualString = blogName.equalsIgnoreCase(authorName); //false
  7. //2
  8. isEqualString = blogName.equalsIgnoreCase("howtodoinjava.com"); //true
  9. //3
  10. isEqualString = blogName.equalsIgnoreCase(null); //false
  11. //4 - case-insensitive
  12. isEqualString = blogName.equalsIgnoreCase("HOWTODOINJAVA.COM"); //TRUE
  13. }
  14. }

4. Java 中==equals之间的区别

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

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

  1. public class Main
  2. {
  3. public static void main(String[] args)
  4. {
  5. String blogName1 = new String("howtodoinjava.com");
  6. String blogName2 = new String("howtodoinjava.com");
  7. boolean isEqual1 = blogName1.equals(blogName2); //true
  8. boolean isEqual2 = blogName1 == blogName2; //false
  9. }
  10. }

学习愉快!

参考:

Java String文档