Java String compareTo() 方法按字典顺序比较两个字符串。我们可以认为它是基于字典的比较。
如果字符串 'str1'
在字典中出现在另一个字符串 'str2'
之前,则称 str2
大于 'str1 '
在字符串比较中。
string1 > string2
– 'string1' 在字典中位于 'string2' 之后。string1 < string2 - 'string1' 在字典中出现在 'string2' 之前。
string1 = string2
- 'string1' 和 'string2' 是相等的。
在 compareTo() 方法中,两个字符串按字典顺序(字典顺序)进行比较。第一个字符串是调用方法的 String 对象本身。第二个字符串是方法的参数。
此方法根据字符串中每个字符的 Unicode 值进行字符串比较。
此方法的结果是整数值,其中 -
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; }
了解如何对 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 } }
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 } }
快乐学习!!
参考:字符串 Java 文档
地址:https://www.cundage.com/article/java-string-compareto-method.html