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;
}