Java学习笔记Java 杂谈程序员

compareTo

2019-04-09  本文已影响0人  MDZZ灭顶之灾12138
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。

上一篇下一篇

猜你喜欢

热点阅读