Java 中 String 之 compareTo()的程序源码浅析

来源:互联网 发布:jdk 7u67 linux x64 编辑:程序博客网 时间:2024/06/05 04:38
JDK 源码
 public int compareTo(String anotherString) {        //this -- s1 -- "hello"        //anotherString -- s2 -- "hel"        int len1 = value.length; //this.value.length--s1.toCharArray().length--5        int len2 = anotherString.value.length;//s2.value.length -- s2.toCharArray().length--3        int lim = Math.min(len1, len2); //Math.min(5,3); -- lim=3;        char v1[] = value; //s1.toCharArray()        char v2[] = anotherString.value;                //char v1[] = {'h','e','l','l','o'};        //char v2[] = {'h','e','l'};        int k = 0;        while (k < lim) {            char c1 = v1[k]; //c1='h','e','l'            char c2 = v2[k]; //c2='h','e','l'            if (c1 != c2) {                return c1 - c2;            }            k++;        }        return len1 - len2; //5-3=2;   }

使用示例
String s1 = "hello";String s2 = "hel";System.out.println(s1.compareTo(s2)); // 2