Java中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码相减后的值
若各位置都相等,则将两个字符串长度的差值返回。

下面是例子:

1.各位置都相等

返回两者长度差
a="hello";
b="hell";
num=1;
或者
a="hell";
b="hello";
num=1;

2.若不相等

直接返回该位置字符的ASCII码相减后的值

a=“ah”; //a=97
b=“eg”; //e=101
num=-4;

觉得还不错可以点个赞哦~ 谢谢(๑•ᴗ•๑)

发布了52 篇原创文章 · 获赞 84 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_39380155/article/details/99318528