原文: https://howtodoinjava.com/java/string/java-string-compareto-method/
Java 字符串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 方法返回类型
此方法的结果为整数值,其中:
- 正整数 – 表示按字典顺序字符串对象在变量字符串之后。
- 负整数 – 表示按字典顺序的字符串对象在变量字符串之前。
- 零 – 表示两个字符串相等。
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 bananaSystem.out.println( "apple".compareTo("cherry") ); //-2 - apple comes before cherrySystem.out.println( "cherry".compareTo("banana") ); //1 - cherry comes after bananaSystem.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") ); //31System.out.println( "apple".compareToIgnoreCase("banana") ); //-1System.out.println( "cherry".compareTo("cherry") ); //0System.out.println( "cherry".compareToIgnoreCase("CHERRY") ); //0}}
学习愉快!
