原文: https://howtodoinjava.com/java/string/java-string-compareto-method/

Java 字符串compareTo()方法按字典顺序比较两个字符串。 我们可以考虑基于字典的比较。

1. 字符串比较

如果字符串'str1'在字典中的另一个字符串'str2'之前,则在字符串比较中str2大于'str1'

string1 > string2string1在字典中出现string2之后。

string1 < string2 - string1在字典中的string2之前。

string1 = string2 - string1string2相等。

2. String.compareTo()方法

compareTo()方法中,按字典顺序(字典顺序)比较两个字符串。 第一个字符串是在其上调用方法的String对象本身。 第二个字符串是方法的参数。

此方法根据字符串中每个字符的 Unicode 值进行字符串比较。

2.1 方法返回类型

此方法的结果为整数值,其中:

  1. 正整数 – 表示按字典顺序字符串对象在变量字符串之后。
  2. 负整数 – 表示按字典顺序的字符串对象在变量字符串之前。
  3. – 表示两个字符串相等。

2.2 方法语法

Java compareTo()方法实现。

  1. public int compareTo(String anotherString) {
  2. int len1 = value.length;
  3. int len2 = anotherString.value.length;
  4. int lim = Math.min(len1, len2);
  5. char v1[] = value;
  6. char v2[] = anotherString.value;
  7. int k = 0;
  8. while (k < lim) {
  9. char c1 = v1[k];
  10. char c2 = v2[k];
  11. if (c1 != c2) {
  12. return c1 - c2;
  13. }
  14. k++;
  15. }
  16. return len1 - len2;
  17. }

3. Java String.compareTo()示例

了解如何在 Java 字符串上调用compareTo()方法。

  1. public class Main
  2. {
  3. public static void main(String[] args)
  4. {
  5. System.out.println( "apple".compareTo("banana") ); //-1 - apple comes before banana
  6. System.out.println( "apple".compareTo("cherry") ); //-2 - apple comes before cherry
  7. System.out.println( "cherry".compareTo("banana") ); //1 - cherry comes after banana
  8. System.out.println( "cherry".compareTo("cherry") ); //0 - Both strings are equal
  9. }
  10. }

4. Java String.compareToIgnoreCase()示例

Java 程序以不区分大小写的方式比较两个字符串。 请注意,compareTo()compareToIgnoreCase()方法的行为方式相同,只是后者不区分大小写

在给定的示例中,请注意前两个语句中的字符串比较,如何更改字符串的大小写可能如何更改结果和顺序。

再次注意,在将每个字符转换为 unicode 值之后,将对两个字符串进行逐字符比较。

  1. public class Main
  2. {
  3. public static void main(String[] args)
  4. {
  5. System.out.println( "apple".compareTo("BANANA") ); //31
  6. System.out.println( "apple".compareToIgnoreCase("banana") ); //-1
  7. System.out.println( "cherry".compareTo("cherry") ); //0
  8. System.out.println( "cherry".compareToIgnoreCase("CHERRY") ); //0
  9. }
  10. }

学习愉快!

参考:String Java 文档