首页 > 其他 > 详细

String类的compareTo()方法的源码解析

时间:2016-12-12 22:11:36      阅读:159      评论:0      收藏:0      [点我收藏+]
private final char value[];
  
    字符串会自动转换为一个字符数组。
  
  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

 

String类的compareTo()方法的源码解析

原文:http://www.cnblogs.com/printN/p/6165654.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!