📜  Java字符串compareTo()

📅  最后修改于: 2020-09-27 02:29:47             🧑  作者: Mango

Java String compareTo()方法按字典顺序比较两个字符串 (按字典顺序)。比较是基于字符串中每个字符的Unicode值。

compareTo()方法的语法为:

string.compareTo(String str)

在这里, 字符串String类的对象。


compareTo()参数

compareTo()方法采用单个参数。

  • str-要比较的字符串

compareTo()返回值
  • 如果字符串相等,则返回0
  • 如果字符串按字典顺序位于str参数之前,则返回负整数
  • 如果字符串在字典顺序中位于str参数之前,则返回正整数

示例:Java字符串compareTo()
class Main {
    public static void main(String[] args) {
        String str1 = "Learn Java";
        String str2 = "Learn Java";
        String str3 = "Learn Kolin";
        int result;

        // comparing str1 with str2
        result = str1.compareTo(str2);
        System.out.println(result); // 0

        // comparing str1 with str3
        result = str1.compareTo(str3);
        System.out.println(result); // -1

        // comparing str3 with str1
        result = str3.compareTo(str1);
        System.out.println(result); // 1
    }
}

这里,

  • str1str2相等。因此, str1.compareTo(str2)返回0。
  • 按字典顺序, str1str3之前。因此, str1.compareTo(str3)返回负值,而str3.compareTo(str1)返回正值。

示例2:检查两个字符串是否相等
class Main {
    public static void main(String[] args) {
        String str1 = "Learn Python";
        String str2 = "Learn Java";
        
        // if str1 and str2 are equal, the result is 0
        if (str1.compareTo(str2) == 0) {
            System.out.println("str1 and str2 are equal");
        }
        else {
            System.out.println("str1 and str2 are not equal");
        }
    }
}

输出

str1 and str2 are not equal

compareTo()方法考虑字母大小写(大写和小写)。

示例3:带案例的compareTo()
class Main {
    public static void main(String[] args) {
        String str1 = "Learn Java";
        String str2 = "learn Java";
        int result;

        // comparing str1 with str2
        result = str1.compareTo(str2);
        System.out.println(result); // -32
    }
}

"Learn Java""learn Java" ,我们不会得到0。这是因为compareTo()考虑了字母大小写。

笔记:

  • 如果需要比较两个字符串而不区分大小写,请使用Java字符串compareToIgnoreCase()方法。
  • 如果将null传递给compareTo()方法,则会收到错误消息。

相关教程: Java字符串equals()