compareTo

image.png

String类中是如何实现compareTo方法的

public int compareTo(String anotherString) {
        int len1 = value.length;
        int len2 = anotherString.value.length;
        int lim = Math.min(len1, len2);
        char v1[] = value;
        char v2[] = anotherString.value;
 
        int k = 0;
        while (k < lim) {
            char c1 = v1[k];
            char c2 = v2[k];
            if (c1 != c2) {
                return c1 - c2;
            }
            k++;
        }
        return len1 - len2;
}

首先取出两个字符串的长度,比较较小的长度内,两者是否相等。

      若不相等,则直接返回该位置字符的ASCII码相减后的值。

      若各位置都相等,则将两个字符串长度的差值返回。

按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0。

推荐阅读更多精彩内容

  • 做自己喜欢做的事,这是最有尊严的活法。 可这种活法多么难,难到很少有人将它当成人生梦想去追寻。 首先,一个谋生,就...
    蓝柿阅读 228评论 1 6
  • 人类在进步,科技在进步,游戏也同样如此。互联网的时代是我们无法避免的,游戏也是青少年不可避免的,此时家长们应该正确...
    我霸气游戏网阅读 1,542评论 0 0
  • 校区:科学创想乐高机器人沈河校区 ✔班级: 【周日下午2:45--3:45。学员:刘镇林,李心怡,戴岩松,金冠旭。...
    A越单纯越幸福阅读 619评论 0 0
  • 每天写点文字,感觉还是很不错滴。 今天是一个累而快乐的一天,三个人在一起总也浪不够,总会有bug出现,然后不停地笑...
    严小琼呀阅读 76评论 0 1