Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
通过文本排序的应用程序执行频繁的字符串比较。例如,报表生成器在按字母顺序对字符串列表进行排序时执行字符串比较。
如果你的应用程序受众仅限于说英语的人,则可以使用 String.compareTo
方法执行字符串比较。String.compareTo
方法对两个字符串中的 Unicode 字符执行二进制比较。(译注:这里的二进制比较或许应该翻译为二元比较?后面的 CollationKey 才说是按位比较)但是,对于大多数语言,不能依赖此二进制比较来对字符串进行排序,因为 Unicode 值与字符的相对顺序不对应。
幸运的是,Collator
类允许你的应用程序对不同语言执行字符串比较。在本节中,你将学习如何在排序文本时使用 Collator
类。
排序规则定义字符串的排序顺序。这些规则因语言环境而异,因为各种自然语言对单词的排序方式不同。使用 Collator
类提供的预定义排序规则,你可以以与语言环境无关的方式对字符串进行排序。
在某些情况下,Collator
类提供的预定义排序规则可能不适合你。例如,你可能希望使用 Collator
不支持其语言环境的语言对字符串进行排序。在这种情况下,你可以定义自己的排序规则,并将它们分配给 RuleBasedCollator
对象。
使用 CollationKey
类,可以提高字符串比较的效率。此类将 String
对象转换为符合给定 Collator
规则的排序键。