源码中String类实现了Comparable接口,并对其抽象方法compareTo()进行了重写。
public class CompareToTest {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "akcdj";
System.out.println(testCompareTo(s1, s2));
}
public static int testCompareTo(String s1,String s2){
int len1 = s1.length();
int len2 = s2.length();
int min = Math.min(len1, len2); //找出字符串长度短的那个值。
char[] chars1 = s1.toCharArray();
char[] chars2 = s2.toCharArray();
for (int i = 0; i < min; i++){
if (chars1[i] != chars2[i]){
//返回的是字符数组不一样的索引位置,对应元素的ASCII码的差值。
return chars1[i] - chars2[i];
}
}
return len2 - len1; //返回的是字符串长度的差值。
}
}