用于比较字符串值的Collat​​or(区分设置敏感)和compareTo(按字典顺序)之间的差异

时间:2012-01-16 20:31:40

标签: java compareto

我一直在阅读使用Collat​​or和String中的compareTo方法来比较字符串。我不确定两者在阅读API方面的真正区别。什么时候比另一个更喜欢?

API Collator

API String compareTo

2 个答案:

答案 0 :(得分:6)

基本上,区域设置敏感意味着它考虑了所使用的语言,并且可以使用不同的权重来进行不同字符之间的比较。

  

“例如,在捷克语中,”e“和”f“被视为主要差异,   而“e”和“ě”是次要差异,“e”和“E”是第三种   差异和“e”和“e”是相同的。“1

使用compareTo的字典比较,它只使用它们的Unicode值而不是考虑这些不同的权重。

  

“为了比较Strings一次,比较方法提供了   最棒的表演。然而,当排序字符串列表时,它是   通常需要多次比较每个String。在这   case,Collat​​ionKeys提供更好的性能。 Collat​​ionKey类   将String转换为可以按位比较的一系列位   对抗其他Collat​​ionKeys。 Collat​​ionKey由Collat​​or创建   给定String的对象。 “1

1 Colator Javadoc

答案 1 :(得分:2)

从我的评论中推广(哪一半回答了问题):

使用collat​​or:假设您有一个拥有国际位置的公司的联系人经理。假设您有一个带前缀匹配的自动完成功能。整理者可以允许您的美国员工在名称中找到重音元音的匹配,而无需键入重音符号。

使用compareTo:当你不关心我刚刚给出的情况时。