public class TestStringCompareTo {
/**
* 主函数
*/
public static void main(String[] args) {
// 测试函数
testStringCompareTo();
}
/**
* 了解String类中的int compareTo(String anotherString)函数。
* 一句话概括:按字典顺序比(Unicode码)较两个字符串。
* 参数:参数字符串
* 返回值:
* 1,0(如果这两个字符串相等,则结果为 0;
* compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。 )
* 2,非0(如果这两个字符串不相等,则结果为非 0)
* 根据源码(jdk1.7)解释一下比较过程:逐一比较两个字符串相同位置上的字符,
* 前字符 - 后字符,如果相等,继续,如果不相等,返回差值
* 如果较短字符串循环结束,还没有比出结果,就返回两个字符串的长度差
* 结果为0,说明按字典顺序两个字符串上每个字符相等且长度相等
* 结果不为0,说明按字典顺序两个字符串上不是每个字符相等,或长度不相等
*/
public static void testStringCompareTo() {
// 返回值:0,按字典顺序两个字符串上每个字符相等且长度相等
System.out.println("0123456789".compareTo("0123456789"));
// 返回值:非0,某个位置上按字典顺序字符比较不相等
// 返回值:-9('0' - '9' = -9)
System.out.println("0123456780".compareTo("0123456789"));
// 返回值:非0,两个字符串长度不相等
// 返回值:5(10 - 5 = 5)
System.out.println("0123456789".compareTo("01234"));
}
}