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