spring类的compareTo()方法源码学习

java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值

    public int compareTo(String anotherString) {

        // 1.获取需要比较的两个字符串的长度
        int len1 = value.length;
        int len2 = anotherString.value.length;

        // 2.取两个字符串长度的最小值
        int lim = Math.min(len1, len2);

        // 3.获取两个字符串的值(String底层使用char类型的数组保存内容)
        char v1[] = value;
        char v2[] = anotherString.value;

        int k = 0;
        // 4.从第一位字符开始,依次比较两个字符串的每个字符的asc码
        while (k < lim) {
            char c1 = v1[k];
            char c2 = v2[k];

            // 5.如果asc码不相同,则返回两个asc码的差值
            if (c1 != c2) {
                return c1 - c2;
            }
            k++;
        }
        
        // 6.如果两个字符串的asc码比到最后,依然相同,则返回两个字符串长度的差值
        return len1 - len2;
    }

阅读心得:
1.可以用来判断两个字符串内容是否相同
2.返回的数值大小并没有特别的价值,返回值的符号才有价值。
3.返回值为正数:c1在字典里的顺序在c2之前(如a在b之前;ab在abc和acb之前)
4.返回值为负数:c2在字典里的顺序在c1之前
5.返回值为0:c1与c2的字符串内容相同

你可能感兴趣的:(spring类的compareTo()方法源码学习)