String类中的equals
时间: 2023-07-28 16:38:57 浏览: 93
Object,String类练习.doc
在 `String` 类中,`equals` 方法被重写了,用于比较两个字符串的内容是否相等。`String` 类的 `equals` 方法的实现如下:
```java
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;
}
```
可以看到,`String` 类的 `equals` 方法先判断两个字符串是否引用同一个对象,如果是直接返回 `true`,否则判断两个字符串的长度是否相等,如果长度相等再逐个比较字符串的字符是否相等,如果都相等则返回 `true`,否则返回 `false`。
在使用 `equals` 方法时,我们应该注意以下几点:
1. 在比较两个字符串是否相等时,应该使用 `equals` 方法,而不是使用 `==`,因为 `==` 比较的是两个字符串的内存地址,而不是它们的内容。
2. 在比较时应该避免将 `null` 作为参数传入,否则会抛出 `NullPointerException` 异常。可以使用 `"字符串".equals(null)` 来避免这个问题,在这种情况下返回 `false`。
3. 在比较字符串时应该注意忽略大小写,可以使用 `equalsIgnoreCase` 方法来实现。
阅读全文