Java String.compareToIgnoreCase()方法示例

Java String.compareToIgnoreCase()方法示例

原文: https://howtodoinjava.com/java/string/string-comparetoignorecase-example/

Java 字符串compareToIgnoreCase()方法按字典顺序比较两个字符串,忽略大小写。 该方法与String.compareTo()方法相同,但compareTo()方法区分大小写。

1. String.compareToIgnoreCase()方法

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

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

1.1 方法返回类型

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

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

1.2 方法实现

此方法使用CaseInsensitiveComparator类,它是字符串类的静态内部类。 字符串比较是通过compare()方法完成的。

public int compare(String s1, String s2) {
    int n1 = s1.length();
    int n2 = s2.length();
    int min = Math.min(n1, n2);
    for (int i = 0; i < min; i++) {
        char c1 = s1.charAt(i);
        char c2 = s2.charAt(i);
        if (c1 != c2) {
            c1 = Character.toUpperCase(c1);
            c2 = Character.toUpperCase(c2);
            if (c1 != c2) {
                c1 = Character.toLowerCase(c1);
                c2 = Character.toLowerCase(c2);
                if (c1 != c2) {
                    // No overflow because of numeric promotion
                    return c1 - c2;
                }
            }
        }
    }
    return n1 - n2;
}

2. Java String.compareToIgnoreCase()示例

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

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
    }
}

3. compareToIgnoreCase()equalsIgnoreCase()

了解compareToIgnoreCase()equalsIgnoreCase()方法之间的主要区别。

  • compareToIgnoreCase()在字典上进行比较(字典顺序)。 equalsIgnoreCase()检查两个字符串是否相等的字符串相等性。 虽然两者都不区分大小写。
  • compareToIgnoreCase()的返回类型是整数类型,它表示一个字符串大于,小于或等于另一个字符串。 equalsIgnoreCase()返回类型是布尔值,这意味着两个字符串相等或不相等。

4. Java String.compareTo()示例

Java 程序使用String.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
    }
}

学习愉快!

参考:String Java 文档