多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java `String.compareToIgnoreCase()`方法示例 > 原文: [https://howtodoinjava.com/java/string/string-comparetoignorecase-example/](https://howtodoinjava.com/java/string/string-comparetoignorecase-example/) [Java 字符串](https://howtodoinjava.com/java-string/)`compareToIgnoreCase()`方法按字典顺序比较两个字符串,忽略大小写。 该方法与`String.compareTo()`方法相同,但[`compareTo()`](https://howtodoinjava.com/java/string/java-string-compareto-method/)方法区分大小写。 ## 1\. `String.compareToIgnoreCase()`方法 在`compareToIgnoreCase()`方法中,按照字典顺序(字典顺序)忽略大小写比较两个字符串。 第一个字符串是在其上调用方法的`String`对象本身。 第二个字符串是方法的参数。 此方法根据字符串中每个字符的 Unicode 值进行字符串比较。 ## 1.1 方法返回类型 此方法的结果为整数值,其中: 1. **正整数** – 表示按字典顺序字符串对象在变量字符串之后。 2. **负整数** – 表示按字典顺序的字符串对象在变量字符串之前。 3. **零** – 表示两个字符串相等。 ## 1.2 方法实现 此方法使用`CaseInsensitiveComparator`类,它是**字符串**类的静态内部类。 字符串比较是通过`compare()`方法完成的。 ```java 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()`方法的行为方式相同,只是后者*不区分大小写*。 ```java 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()`](https://howtodoinjava.com/java/string/string-equalsignorecase-method/)方法之间的主要区别。 * `compareToIgnoreCase()`在字典上进行比较(字典顺序)。 `equalsIgnoreCase()`检查两个字符串是否相等的字符串相等性。 虽然两者都不区分大小写。 * `compareToIgnoreCase()`的返回类型是**整数**类型,它表示一个字符串大于,小于或等于另一个字符串。 `equalsIgnoreCase()`返回类型是**布尔值**,这意味着两个字符串相等或不相等。 ## 4\. Java `String.compareTo()`示例 Java 程序使用`String.compareTo()`方法比较字符串。 ```java 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 文档](https://docs.oracle.com/javase/9/docs/api/java/lang/String.html)