String 对象按照ASCII码的比较方法

String a = new String("ab");
String b = "a";
//本质是返回"ab"-"b"的ASCII值
System.out.println(a.compareTo(b));

String 对象判断相等不想等不能用 ‘==’

在C++种 字符串a和字符串b相等与否可以直接用== ,但是 java中String类提供了专用的方法 a.equals(String b);

String类中的 compartTo(String anotherString)总结

转载请注明地址

http://blog.csdn.net/qq_25827845/article/details/53870329
我们来看一下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码相减后的值。
若各位置都相等,则将两个字符串长度的差值返回。