Java教程是为JDK 8编写的。本页面中描述的示例和实践未利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言特性的摘要。
请参阅JDK发行说明,了解所有JDK版本的新功能、增强功能和已删除或已弃用选项的信息。
对于需要对文本进行排序的应用程序,会频繁进行字符串比较。例如,报表生成器在对字符串列表按字母顺序排序时进行字符串比较。
如果应用程序的受众仅限于使用英语的人群,您可以使用String.compareTo
方法进行字符串比较。String.compareTo
方法对两个字符串内的Unicode字符进行二进制比较。然而,对于大多数语言,不能依赖这种二进制比较来对字符串进行排序,因为Unicode值不对应字符的相对顺序。
幸运的是,Collator
类允许您的应用程序为不同语言进行字符串比较。在本节中,您将学习如何在文本排序时使用Collator
类。
排序规则定义了字符串的排序顺序。这些规则因语言环境而异,因为不同的自然语言对单词的排序方式不同。使用Collator
类提供的预定义排序规则,您可以以与区域设置无关的方式对字符串进行排序。
在某些情况下,Collator
类提供的预定义排序规则可能不适用于您。例如,您可能希望对不受Collator
支持的语言的字符串进行排序。在这种情况下,您可以定义自己的排序规则,并将其分配给RuleBasedCollator
对象。
通过使用CollationKey
类,您可以提高字符串比较的效率。该类将String
对象转换为遵循给定Collator
规则的排序键。