compareTo()
方法按词典顺序(字典顺序)对两个字符串进行词典比较。该比较基于字符串中每个字符的 Unicode 值。
示例
class Main {
public static void main(String[] args) {
String str1 = "Learn Java";
String str2 = "Learn Kolin";
int result;
// comparing str1 with str2
result = str1.compareTo(str2);
System.out.println(result);
}
}
// Output: -1
compareTo() 语法
compareTo()
方法的语法是
string.compareTo(String str)
这里,string是String
类的一个对象。
compareTo() 参数
compareTo()
方法接受一个参数。
- str - 要比较的字符串
compareTo() 返回值
- 如果字符串相等,则返回 0
- 如果字符串在字典顺序上排在 str 参数之前,则返回一个负整数
- 如果字符串在字典顺序上排在 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;
// 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
}
}
这里,
- str1 和 str2 相等。因此,
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";
// 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
示例 3:compareTo() 与大小写
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 String compareToIgnoreCase() 方法。
- 如果将
null
传递给compareTo()
方法,您将收到一个错误。
另请阅读