Java String compareTo()
方法用于按字典顺序比较两个字符串。此方法在Comparable
接口中声明。由于String
实现了Comparable
接口,因此它提供了compareTo()
方法实现。
Java字符串比较
Java String
类compareTo()
方法有两种变体。
1. compareTo(String anotherString)方法:
此方法将String对象与按字典顺序传递的anotherString
参数进行比较。
如果String对象在传递的参数之前,则返回负整数,如果String对象在参数String之后,则返回正整数。
当两个String都具有相同的值时返回0
,在这种情况下,equals(String str)
方法将返回true
。
比较是基于字符串中每个字符的Unicode值。应该查看String类源代码以了解此方法的工作方式。
2. compareToIgnoreCase(String str)方法
这个方法与第一个类似,只是它忽略了大小写。它使用String CASE_INSENSITIVE_ORDER比较器进行不区分大小写的比较。
如果此方法的返回值为0
,则equalsIgnoreCase(String str)
将返回true
。当指定的String大于,等于或小于此String时,此方法返回负整数,零或正整数,比较忽略大小写。
下面来看一个java类,演示如何使用java string compareTo()
方法的用法。
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")); } }
执行上面示例代码,得到以下结果 -
-3 0
输出为负值,这是因为“ABC”在字典上比“DEF”小。因为它逐个比较字符值。也可以使用以下测试程序进行确认。
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()
方法不同。