跳到主要内容

Java字符串compareTo()方法

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

示例

class Main {
public static void main(String[] args) {
String str1 = "Learn Java";
String str2 = "Learn Kolin";
int result;

// 比较 str1 和 str2
result = str1.compareTo(str2);

System.out.println(result);
}
}

// 输出:-1

compareTo() 的语法

compareTo() 方法的语法是:

string.compareTo(String str)

这里,stringString 类的一个对象。

compareTo() 参数

compareTo() 方法接收单个参数。

  • str - 要比较的字符串

compareTo() 返回值

  • 返回 0 如果字符串相等
  • 返回负整数 如果 string 在字典顺序上位于 str 参数之前
  • 返回正整数 如果 string 在字典顺序上位于 str 参数之后

示例:Java String compareTo()

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
}
}

这里,

  • str1str2 相等。因此,str1.compareTo(str2) 返回 0。
  • str1 在字典顺序上位于 str3 之前。因此,str1.compareTo(str3) 返回负数,而 str3.compareTo(str1) 返回正数。

示例 2:检查两个字符串是否相等

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 不相等

示例 3:compareTo() 考虑字母大小写

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() 考虑了字母的大小写。

注意事项:

  • 如果你需要比较两个字符串而忽略大小写差异,请使用 Java String compareToIgnoreCase() 方法。
  • 如果你向 compareTo() 方法传递 null,你会得到一个错误。

相关教程: Java String equals()