ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java `String.compareTo()`方法示例 > 原文: [https://howtodoinjava.com/java/string/java-string-compareto-method/](https://howtodoinjava.com/java/string/java-string-compareto-method/) [Java 字符串](https://howtodoinjava.com/java-string/)`compareTo()`方法按字典顺序比较两个字符串。 我们可以考虑基于字典的比较。 ## 1\. 字符串比较 如果字符串`'str1'`在字典中的另一个字符串`'str2'`之前,则在字符串比较中`str2`大于`'str1'`。 > `string1 > string2` – `string1`在字典中出现`string2`之后。 > > `string1 < string2` - `string1`在字典中的`string2`之前。 > > `string1 = string2` - `string1`和`string2`相等。 ## 2\. `String.compareTo()`方法 在`compareTo()`方法中,按字典顺序(字典顺序)比较两个字符串。 第一个字符串是在其上调用方法的`String`对象本身。 第二个字符串是方法的参数。 此方法根据字符串中每个字符的 Unicode 值进行字符串比较。 #### 2.1 方法返回类型 此方法的结果为整数值,其中: 1. **正整数** – 表示按字典顺序字符串对象在变量字符串之后。 2. **负整数** – 表示按字典顺序的字符串对象在变量字符串之前。 3. **零** – 表示两个字符串相等。 #### 2.2 方法语法 Java `compareTo()`方法实现。 ```java 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()`方法。 ```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 } } ``` ## 4\. Java `String.compareToIgnoreCase()`示例 Java 程序以不区分大小写的方式比较两个字符串。 请注意,`compareTo()`和`compareToIgnoreCase()`方法的行为方式相同,只是后者*不区分大小写*。 在给定的示例中,请注意前两个语句中的字符串比较,如何更改字符串的大小写可能如何更改结果和顺序。 再次注意,在将每个字符转换为 unicode 值之后,将对两个字符串进行逐字符比较。 ```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 } } ``` 学习愉快! 参考:[`String` Java 文档](https://docs.oracle.com/javase/9/docs/api/java/lang/String.html)