# 比较字符串

> 原文： [https://docs.oracle.com/javase/tutorial/i18n/text/collat​​ionintro.html](https://docs.oracle.com/javase/tutorial/i18n/text/collationintro.html)

通过文本排序的应用程序执行频繁的字符串比较。例如，报表生成器在按字母顺序对字符串列表进行排序时执行字符串比较。

如果您的应用程序受众仅限于说英语的人，则可以使用`String.compareTo`方法执行字符串比较。 `String.compareTo`方法对两个字符串中的 Unicode 字符执行二进制比较。但是，对于大多数语言，不能依赖此二进制比较来对字符串进行排序，因为 Unicode 值与字符的相对顺序不对应。

幸运的是， [`Collator`](https://docs.oracle.com/javase/8/docs/api/java/text/Collator.html) 类允许您的应用程序对不同语言执行字符串比较。在本节中，您将学习如何在排序文本时使用`Collator`类。

## [执行与区域无关的比较](locale.html)

排序规则定义字符串的排序顺序。这些规则因语言环境而异，因为各种自然语言对单词的排序方式不同使用`Collator`类提供的预定义排序规则，您可以以与语言环境无关的方式对字符串进行排序。

## [自定义整理规则](rule.html)

在某些情况下，`Collator`类提供的预定义排序规则可能不适合您。例如，您可能希望使用`Collator`不支持其语言环境的语言对字符串进行排序。在这种情况下，您可以定义自己的排序规则，并将它们分配给`RuleBasedCollator`对象。

## [改善整理表现](perform.html)

使用`CollationKey`类，可以提高字符串比较的效率。此类将`String`对象转换为按照给定`Collator`的规则排序的键。