1、使用equals( )方法比较两个字符串是否相等
用于比较两个独立对象的内存是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。
equals重写了Object
anObject:对比这个String对象
/**
* 将此字符串与指定对象进行比较。
* 其结果是true当且仅当该参数不是null并且是String对象,表示相同的字符串序
* 列作为该对象
*
* @param equals重写了Object
*/
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;
}
2、equalsIgnoreCase()简单来说是忽略大小写,A-Z和a-z是一样的。
只能作为字符串之间的比较
如果以下至少一个为真,则这个字符c1和c2被认为是真:
- 两个字符相同(与==操作符相比)
- 将方法Character.toUpperCase(char)应用于每一个字符产生相同的结果
- 将方法Character.toLowerCase(char)应用于每一个字符产生相同的结果
/**
* 将此String与其它String比较,如果两个字符串长度相同,并且两个字符串响应的字符忽略大小写,则这两个字符串被认为是相等的
*
* @param anotherString
* String将此String对比
*
* @return 如果参数不为null则为true,它代表等效的String忽略大小写;否则为false
*/
public boolean equalsIgnoreCase(String anotherString) {
return (this == anotherString) ? true
: (anotherString != null)
&& (anotherString.value.length == value.length)
&& regionMatches(true, 0, anotherString, 0, value.length);
}