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)
这里,string
是 String
类的一个对象。
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
}
}
这里,
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";
// 如果 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()