Java字符串compareTo()
Java String compareTo()方法用于按字典顺序比较两个字符串。
此方法在Comparable接口中声明。
由于String实现Comparable接口,所以它提供了compareTo()方法的实现。
Java字符串compareTo
Java String类具有compareTo()方法的两个变体。
compareTo(String anotherString):这个compareTo方法将String对象与按字典顺序传递的String参数进行比较。
如果String对象位于传递的参数之前,则返回负整数,如果String对象跟随传递的参数String,则返回正整数。
当两个字符串具有相同的值时,它返回0,在这种情况下,equals(String str)方法将返回true。
比较基于字符串中每个字符的Unicode值。
您应该检查String类源代码以检查此方法的工作方式。compareToIgnoreCase(String str):这个compareTo方法与第一个类似,只是它忽略大小写。
它使用String CASE_INSENSITIVE_ORDER Comparator进行不区分大小写的比较。
如果此方法的返回值为0,则equalsIgnoreCase(String str)将返回true。
当指定的String大于,等于或者小于此String时,此方法将返回负整数,零或者正整数,而忽略大小写考虑。
Java字符串compareTo示例
让我们看一个小的Java类,解释Java字符串compareTo方法的用法。
package com.theitroad.util; public class StringCompareToExample { /** * This class show String compareTo examples * @param args */ public static void main(String[] args) { String str = "ABC"; System.out.println(str.compareTo("DEF")); System.out.println(str.compareToIgnoreCase("abc")); } }
上面的compareTo示例程序的输出如下所示。
高于负输出的原因是,在字典上," ABC"比" DEF"小。
输出为-3,因为它会一一比较字符值。
您也可以使用以下测试程序确认这一点。
public class Test { public static void main(String[] args) { char a = 'A'; char d = 'D'; System.out.println(a-d); //prints -3 } }
因此,当将" ABC"与" DEF"进行比较时,将比较第一个索引处的字符。
由于在字典上它们是不同的,并且'A'在'D'之前,因此它返回一个负整数,它们之间的差是,因此输出为-3。
因此,如果将" AABC"与" ADBC"进行比较,那么您将获得与-3相同的输出。
这就是Java String compareTo()方法示例的全部内容。
请注意,此方法与String equals()方法不同。