Java String的compareTo() compareToIgnoreCase()

Java字符串比较大小,有2个接口,一个是区分大小写:compareTo(), 一个是不区分大小写的比较:compareToIgnoreCase().

 public int compareTo(String anotherString)

按字典顺序比较两个字符串。比较基于字符串中每个字符的Unicode值。将此String对象表示的字符序列与参数字符串表示的字符顺序进行字典比较。如果此String对象在字典中位于参数字符串之前,则结果为负整数。如果此String对象按字典顺序跟在参数字符串后面,则结果为正整数。如果字符串相等,则结果为零;compareTo正好在equals(Object)方法返回true时返回0

这就是词典排序的定义。如果两个字符串不同,那么它们在某个索引处有不同的字符,该索引对两个字符串都是有效的索引,或者它们的长度不同,或者两者都不同。如果它们在一个或多个索引位置上具有不同的字符,则设k是最小的此类索引;则其字符在位置k处具有较小值的字符串(通过使用<运算符确定)在字典上位于另一个字符串之前。在这种情况下,compareTo返回两个字符串中位置k处两个字符值的差值,即值:

 this.charAt(k)-anotherString.charAt(k)

如果没有它们不同的索引位置,那么较短的字符串在字典上先于较长的字符串。在这种情况下,compareTo返回字符串长度的差值,即值:

 this.length()-anotherString.length()
 

For finer-grained String comparison, refer to Collator.

Specified by:

compareTo in interface Comparable<String>

Parameters:

anotherString - the String to be compared.

Returns:

如果参数字符串等于此字符串,则值为0;如果该字符串在字典上小于字符串参数,则该值小于0;如果该字符串在字典上大于字符串参数,则为大于0的值。

public int compareToIgnoreCase(String str)

以字典方式比较两个字符串,忽略大小写差异。此方法返回一个整数,其符号为调用compareTo时使用大小写折叠版本的字符串的符号,其中大小写差异已通过

calling Character.toLowerCase(Character.toUpperCase(int)) on each Unicode code point.


请注意,此方法没有考虑区域设置,并且会导致某些区域设置的排序不令人满意。排序规则类提供了区分区域设置的比较。

Parameters:

str - the String to be compared.

Returns:

如果参数字符串等于此字符串,则值为0;如果该字符串在字典上小于字符串参数,则该值小于0;如果该字符串在字典上大于字符串参数,则为大于0的值。

Since:

1.2

See Also:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值