源码:
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}
由源码可看出:
①首先取出两个字符串的长度,比较较小的长度内,两者是否相等。
②若不相等,则直接返回该位置字符的ASCII码相减后的值。
③若各位置都相等,则将两个字符串长度的差值返回。
下面是例子:
1.各位置都相等
返回两者长度差
a="hello";b="hell";
num=1;
或者
a="hell";
b="hello";
num=1;
2.若不相等
直接返回该位置字符的ASCII码相减后的值
a=“ah”; //a=97
b=“eg”; //e=101
num=-4;