我一直在阅读有关在 String 中使用 Collator 和 compareTo 方法来比较字符串的信息。我不确定通过阅读 API 两者之间的真正区别是什么。什么时候比另一个更喜欢?
问问题
2582 次
2 回答
6
基本上,语言环境敏感意味着它考虑了所使用的语言,并且可能使用不同的权重来比较不同的字符。
“例如,在捷克语中,“e”和“f”被认为是主要差异,而“e”和“ě”是次要差异,“e”和“E”是三次差异,“e”和“e”是完全相同的。” 1
通过 compareTo 的字典比较,它只使用它们的 Unicode 值,而不是考虑这些不同的权重。
“为了只比较一次字符串,compare 方法提供了最好的性能。但是,当对字符串列表进行排序时,通常需要多次比较每个字符串。在这种情况下,CollationKeys 提供了更好的性能。CollationKey 类将字符串转换为一系列可以按位与其他 CollationKey 进行比较的位。CollationKey 由给定 String 的 Collator 对象创建。" 1
于 2012-01-16T21:55:36.013 回答
2
从我的评论中提升(哪一半回答了问题):
使用整理者:假设您有一个联系人经理,负责一家拥有国际分支机构的公司。假设您有一个带有前缀匹配的自动完成功能。校对员可以让您的美国员工在名称中的重音元音上找到匹配项,而无需输入重音符号。
使用 compareTo: 当你不关心我刚刚给出的情况时。
于 2012-01-16T23:53:36.100 回答