原文: 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;
}
- 字符串类将覆盖
Object
类中的equals()
方法。 相等性以区分大小写的方式完成。 - 使用
equals()
方法检查字符串内容的相等性。 - 不要使用
'=='
运算符。 它检查对象引用,这在大多数情况下是不希望的。 - 允许将
null
传递给方法。 它将返回false
。 - 使用
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
}
}
学习愉快!
参考: