compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的
差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方
全比较完,这时就比较字符的长度.
String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "cdfg";
String s6 = "abg";
System.out.println(s1.compareTo(s2));//-1(前面相等,s1长度小1)
System.out.println(s1.compareTo(s3));//-3(前面相等,s1长度小3)
System.out.println(s1.compareTo(s4));//48("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println(s1.compareTo(s5));//-2("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
System.out.println(s1.compareTo(s6));//-4(前面相等,"c"的ASCII码是99,"g"的ASCII码是103,所以返回-4)
但一直在想着compareTo可以用于实际中什么应用呢??我这里例举使用compareTo进行简单 字符串的排序。(例如使用compareTo 进行姓名的排序)
//需要进行排序的字符串
String[] array = new String[] { "lilei", "libai", "james", "poly","wobfei" };
//使用简单的循环排序
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i].compareTo(array[j]) > 0) {
String temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
使用上面针对String的排序以后,字符串的内容将会是:james libai lilei poly wobfei
(资料来源:互联网)