1.compareTo方法引入
String类中有一个按照字典顺序比较两个字符串的方法compareTo通过API文档可知
int compareTo(String anotherString) // 按字典顺序比较两个字符串。
现在有如下String类型的字符串
(1)s1="abcde", s2="abcd"
(2)s1="abcde" , s2="abcs"
则得到的结果会是多少呢?
首先看如下代码:
package xfcy_01;
public class StringDemo01 {
public static void main(String[] args) {
String s1="abcde";
String s2="abcd";
String s3="abcs";
System.out.println(s1.compareTo(s2));
System.out.println(s1.compareTo(s3));
}
}
得到结果为:
得到这样的结果,或许不太理解,为什么会是这样的呢?
2.通过查看compare源码
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;
}
所以才会出现上面的结果
3.小结
当遇到不懂的地方看源码可以更清晰的了解内部进行的运算,因此在后面的学习中也因该学会看源代码。以上内容仅为个人观点,如有错误,请指出!