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()会区分字母的大小写。