Java String.compareTo()方法示例

Java String.compareTo()方法示例

原文: 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()方法实现。

public int compareTo(String anotherString) {
    int len1 = value.length;
    int len2 = anotherString.value.length;
    int lim = Math.min(len1, len2);
    char v1[] = value;
    char v2[] = anotherString.value;

    int k = 0;
    while (k < lim) {
        char c1 = v1[k];
        char c2 = v2[k];
        if (c1 != c2) {
            return c1 - c2;
        }
        k++;
    }
    return len1 - len2;
}

3. Java String.compareTo()示例

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

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

4. Java String.compareToIgnoreCase()示例

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

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

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

public class Main 
{
    public static void main(String[] args) 
    {
        System.out.println( "apple".compareTo("BANANA") );                     //31
        System.out.println( "apple".compareToIgnoreCase("banana") );            //-1

        System.out.println( "cherry".compareTo("cherry") );                     //0
        System.out.println( "cherry".compareToIgnoreCase("CHERRY") );           //0
    }
}

学习愉快!

参考:String Java 文档