String类是Java中最基本的类,有特别多的功能强大的方法,今天就compareTo方法做个总结:
compareTo方法是比较两个字符串 , 返回的是一个整数,该方法比较的过程是这样的:
第一步: 分别求的两个字符串的长度 len1 和 len2。
第二步: 取两个长度中较小的值 lim = min( len1 , len2);
第三步: 把两串字符串分别放在v1[ ] 和 v2[ ] 两个数组中。
第四步: 从 v[0] 到 v[ lim ] 分别比较两个字符的值,
第五步: 如有不同 立即返回 v1[ n ] - v2[ n ]。
第六步: 前 lim 个字符都相等, 返回 len1 - len2;
例子1:
String s1 = "abcd ";
String s2 = "abcee";
int a = s1.compareTo(s2);
则 a 的值为 -1(取前四个,前三个都相等 第四个不同,返回(d - e) 则为 -1(如果不懂请查找asiic 码表))
例子2:
String s1 = "abcde";
String s2 = " abcdefgh";
int a = s1.compareTo(s2);
则 a 的值 为 -3(如果是 s2.compareTo(s1)则值为3)因为 取小值 为(abcde 是 5)前5个都一样,返回长度差。
jdk源码看图片