compareTo

作者: MDZZ灭顶之灾12138 | 来源:发表于2019-04-09 16:40 被阅读0次
    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。

    相关文章

      网友评论

        本文标题:compareTo

        本文链接:https://www.haomeiwen.com/subject/ructpqtx.html