public
boolean
equals(Object anObject) {
if
(
this
== anObject) {
return
true
;
}
if
(anObject
instanceof
String) { //字符串是一个引用数据类型,本身是String对象
//先判断anObject是不是String类的一个实例,如果是运行下边的语句
String anotherString = (String)anObject;//在这里把传进来的anObject这个对象,赋给anotherString (需要类型转换)
int
n = count; //这个count是原始字符串的长度
if
(n == anotherString.count) { //把字符串长度和要比较的字符串长度对比,长度都不同的话就不用比字符串内容了
char
v1[] = value; //把原始字符串以字符形式存入数组
char
v2[] = anotherString.value; //把要比较字符串以字符形式存入数组
int
i = offset; //数组下标
int
j = anotherString.offset; //数组下标
while
(n-- !=
0
) { //遍历数组,比较 数组元素是否相同
if
(v1[i++] != v2[j++]) //在遍历的过程中如果有不同的就返回false
return
false
;
}
return
true
;
}
}
return
false
;
}