Java String compareTo()方法按字典顺序比较两个字符串(按字典顺序)。比较是基于字符串中每个字符的Unicode值。
compareTo()方法的语法为:
string.compareTo(String str)
compareTo()方法采用单个参数。
str - 要比较的字符串
如果字符串相等,则返回0
如果字符串按字典顺序位于参数str之前,则返回负整数
如果字符串按字典顺序位于参数str之前,则返回正整数
class Main {
    public static void main(String[] args) {
        String str1 = "Learn Java";
        String str2 = "Learn Java";
        String str3 = "Learn Kolin";
        int result;
        //比较str1和str2
        result = str1.compareTo(str2);
        System.out.println(result); // 0
        //比较str1和str3
        result = str1.compareTo(str3);
        System.out.println(result); // -1
        //比较str3和str1
        result = str3.compareTo(str1);
        System.out.println(result); // 1
    }
}这里,
str1和str2相等。因此,str1.compareTo(str2) 返回0。
按字典顺序,str1在str3之前。 因此,str1.compareTo(str3)返回负值,而str3.compareTo(str1)返回正值。
class Main {
    public static void main(String[] args) {
        String str1 = "Learn Python";
        String str2 = "Learn Java";
        
        //如果str1和str2相等,则结果为0
        if (str1.compareTo(str2) == 0) {
            System.out.println("str1和str2相等");
        }
        else {
            System.out.println("str1和str2不相等");
        }
    }
}输出结果
str1和str2不相等
compareTo()方法区分字母大小写(大写和小写)。
class Main {
    public static void main(String[] args) {
        String str1 = "Learn Java";
        String str2 = "learn Java";
        int result;
        //比较str1和str2
        result = str1.compareTo(str2);
        System.out.println(result); // -32
    }
}当"Learn Java" 与 "learn Java"进行比较时,我们不会得到0。这是因为compareTo()会区分字母的大小写。