java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值
public int compareTo(String anotherString) {
// 1.获取需要比较的两个字符串的长度
int len1 = value.length;
int len2 = anotherString.value.length;
// 2.取两个字符串长度的最小值
int lim = Math.min(len1, len2);
// 3.获取两个字符串的值(String底层使用char类型的数组保存内容)
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
// 4.从第一位字符开始,依次比较两个字符串的每个字符的asc码
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
// 5.如果asc码不相同,则返回两个asc码的差值
if (c1 != c2) {
return c1 - c2;
}
k++;
}
// 6.如果两个字符串的asc码比到最后,依然相同,则返回两个字符串长度的差值
return len1 - len2;
}
阅读心得:
1.可以用来判断两个字符串内容是否相同
2.返回的数值大小并没有特别的价值,返回值的符号才有价值。
3.返回值为正数:c1在字典里的顺序在c2之前(如a在b之前;ab在abc和acb之前)
4.返回值为负数:c2在字典里的顺序在c1之前
5.返回值为0:c1与c2的字符串内容相同