Класс Collator
- Все реализованные интерфейсы:
Cloneable, Comparator<Object>
- Непосредственные известные подклассы:
RuleBasedCollator
public abstract class Collator extends Object implements Comparator<Object>, Cloneable
Collator выполняет сравнение String с учетом локали. Этот класс используется для создания процедур поиска и сортировки текста на естественном языке. Collator — абстрактный базовый класс. Подклассы реализуют конкретные стратегии сортировки. В настоящее время Java Platform предоставляет один подкласс — RuleBasedCollator, применимый для широкого набора языков. Для решения более специализированных задач можно создавать другие подклассы.
Как и для других классов, учитывающих локаль, для получения подходящего объекта Collator для указанной локали можно использовать статический фабричный метод getInstance. Изучать подклассы Collator потребуется только в том случае, если нужно понять детали конкретной стратегии сортировки или изменить эту стратегию.
В следующем примере показано, как сравнить две строки с помощью Collator для локали по умолчанию.
// Compare two strings in the default locale
Collator myCollator = Collator.getInstance();
if (myCollator.compare("abc", "ABC") < 0) {
System.out.println("abc is less than ABC");
} else {
System.out.println("abc is greater than or equal to ABC");
}
Чтобы определить, какие различия считаются значимыми при сравнении, можно задать свойство strength объекта Collator. Предусмотрено четыре уровня силы: PRIMARY, SECONDARY, TERTIARY и IDENTICAL. Точное соответствие уровней силы языковым особенностям зависит от локали. Например, в чешском языке «e» и «f» считаются первичными различиями, «e» и «ě» — вторичными, «e» и «E» — третичными, а «e» и «e» — идентичными. Ниже показано, как игнорировать регистр и диакритические знаки для американского английского.
// Get the Collator for US English and set its strength to PRIMARY
Collator usCollator = Collator.getInstance(Locale.US);
usCollator.setStrength(Collator.PRIMARY);
if (usCollator.compare("abc", "ABC") == 0) {
System.out.println("Strings are equivalent");
}
Для однократного сравнения String наилучшую производительность обеспечивает метод compare. Однако при сортировке списка String обычно требуется многократно сравнивать каждый String. В этом случае лучшую производительность обеспечивают CollationKey. Класс CollationKey преобразует String в последовательность битов, которую можно побитово сравнивать с другими CollationKey. CollationKey создается объектом Collator для указанного String.
- Примечание к API:
-
CollationKeyиз разныхCollatorсравнивать нельзя. Пример использованияCollationKeyсм. в описании классаCollationKey. - С момента версии:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CANONICAL_DECOMPOSITION |
Значение режима декомпозиции. |
static final int |
FULL_DECOMPOSITION |
Значение режима декомпозиции. |
static final int |
IDENTICAL |
Значение уровня силы Collator. |
static final int |
NO_DECOMPOSITION |
Значение режима декомпозиции. |
static final int |
PRIMARY |
Значение уровня силы Collator. |
static final int |
SECONDARY |
Значение уровня силы Collator. |
static final int |
TERTIARY |
Значение уровня силы Collator. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Переопределяет Cloneable |
int |
compare |
Сравнивает два аргумента по порядку. |
abstract int |
compare |
Сравнивает исходную строку с целевой строкой согласно правилам сортировки этого Collator. |
boolean |
equals |
Сравнивает два объекта Collator на равенство. |
boolean |
equals |
Удобный метод для сравнения двух строк на равенство с учетом правил сортировки этого Collator. |
static Locale[] |
getAvailableLocales() |
Возвращает массив всех локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры. |
abstract CollationKey |
getCollationKey |
Преобразует строку в последовательность битов, которую можно побитово сравнивать с другими CollationKey. |
int |
getDecomposition() |
Получает режим декомпозиции этого Collator. |
static Collator |
getInstance() |
Получает Collator для текущей локали по умолчанию. |
static Collator |
getInstance |
Получает Collator для указанной локали. |
int |
getStrength() |
Возвращает свойство уровня силы этого Collator. |
abstract int |
hashCode() |
Вычисляет хеш-код этого Collator. |
void |
setDecomposition |
Задает режим декомпозиции этого Collator. |
void |
setStrength |
Задает свойство уровня силы этого Collator. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
Подробное описание полей
PRIMARY
public static final int PRIMARY
- См. также:
SECONDARY
public static final int SECONDARY
- См. также:
TERTIARY
public static final int TERTIARY
- См. также:
IDENTICAL
public static final int IDENTICAL
- См. также:
NO_DECOMPOSITION
public static final int NO_DECOMPOSITION
- См. также:
CANONICAL_DECOMPOSITION
public static final int CANONICAL_DECOMPOSITION
CANONICAL_DECOMPOSITION соответствует форме нормализации D, описанной в документе Дополнение № 15 к стандарту Unicode: формы нормализации Unicode.
- Внешние спецификации
- См. также:
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION
FULL_DECOMPOSITION соответствует форме нормализации KD, описанной в документе Дополнение № 15 к стандарту Unicode: формы нормализации Unicode.
- Внешние спецификации
- См. также:
Подробное описание конструкторов
Collator
protected Collator()
- См. также:
Подробное описание методов
getInstance
public static Collator getInstance()
Locale.getDefault().- Возвращает:
- Collator для локали по умолчанию (например, en_US)
- См. также:
getInstance
public static Collator getInstance(Locale desiredLocale)
ks и/или kk сортировки Unicode, этот метод вызовет setStrength(int) и/или setDecomposition(int) для созданного экземпляра, если указанные параметры сортировки Unicode распознаны согласно следующим соответствиям: | Значения BCP 47 для уровня силы (ks) | Константы Collator для уровня силы |
|---|---|
| level1 | PRIMARY |
| level2 | SECONDARY |
| level3 | TERTIARY* |
| identic | IDENTICAL |
| Значения BCP 47 для нормализации (kk) | Константы Collator для декомпозиции |
| true | CANONICAL_DECOMPOSITION |
| false | NO_DECOMPOSITION* |
- Примечание к API:
- Реализации класса
Collatorмогут возвращать разные экземпляры в зависимости отcoидентификатора сортировки Unicode вdesiredLocale. Например:может возвращать экземплярCollator.getInstance(Locale.forLanguageTag("sv-u-co-trad"));Collatorс традиционной шведской сортировкой, при которой «v» и «w» имеют одинаковый порядок сортировки, тогда как экземплярCollatorдля шведской локали без идентификатора «co» различает «v» и «w». - Параметры:
-
desiredLocale— требуемая локаль. - Возвращает:
- Collator для указанной локали.
- Внешние спецификации
- См. также:
compare
public abstract int compare(String source, String target)
Для однократного сравнения этот метод обеспечивает наилучшую производительность. Если заданная строка будет участвовать в нескольких сравнениях, наилучшую производительность обеспечивает CollationKey.compareTo. Пример использования CollationKey см. в описании класса Collator.
- Параметры:
-
source— исходная строка. -
target— целевая строка. - Возвращает:
- Целочисленное значение. Значение меньше нуля, если исходная строка меньше целевой; равно нулю, если исходная и целевая строки равны; больше нуля, если исходная строка больше целевой.
- См. также:
compare
public int compare(Object o1, Object o2)
Эта реализация просто возвращает compare((String)o1, (String)o2) .
- Определено в:
-
compareв интерфейсеComparator<Object> - Параметры:
-
o1— первый сравниваемый объект. -
o2— второй сравниваемый объект. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число в зависимости от того, меньше ли первый аргумент второго, равен ему или больше него.
- Выбрасывает:
-
ClassCastException— аргументы нельзя привести к типу String. - С момента версии:
- 1.2
- См. также:
getCollationKey
public abstract CollationKey getCollationKey(String source)
- Параметры:
-
source— строка, которую нужно преобразовать в ключ сортировки. - Возвращает:
- CollationKey для указанной строки, созданный согласно правилам сортировки этого Collator. Если исходная строка равна null, возвращается null для CollationKey.
- См. также:
equals
public boolean equals(String source, String target)
- Параметры:
-
source— исходная строка для сравнения. -
target— целевая строка для сравнения. - Возвращает:
- true, если строки равны согласно правилам сортировки; в противном случае — false.
- См. также:
getStrength
public int getStrength()
- Возвращает:
- текущее свойство уровня силы этого Collator.
- См. также:
setStrength
public void setStrength(int newStrength)
- Параметры:
-
newStrength— новое значение уровня силы. - Выбрасывает:
-
IllegalArgumentException— если новое значение уровня силы не равно PRIMARY, SECONDARY, TERTIARY или IDENTICAL. - См. также:
getDecomposition
public int getDecomposition()
Предусмотрены три значения режима декомпозиции:
- NO_DECOMPOSITION,
- CANONICAL_DECOMPOSITION
- FULL_DECOMPOSITION.
- Возвращает:
- режим декомпозиции
- См. также:
setDecomposition
public void setDecomposition(int decompositionMode)
- Параметры:
-
decompositionMode— новый режим декомпозиции. - Выбрасывает:
-
IllegalArgumentException— если указанное значение не является допустимым режимом декомпозиции. - См. также:
getAvailableLocales
public static Locale[] getAvailableLocales()
getInstance этого класса могут возвращать локализованные экземпляры. Возвращаемый массив представляет собой объединение локалей, поддерживаемых средой выполнения Java и установленными реализациями CollatorProvider. Как минимум возвращаемый массив должен содержать экземпляр Locale, равный Locale.ROOT, и экземпляр Locale, равный Locale.US.- Возвращает:
- Массив локалей, для которых доступны локализованные экземпляры
Collator.
clone
equals
public boolean equals(Object that)
- Определено в:
-
equalsв интерфейсеComparator<Object> - Переопределяет:
-
equalsв классеObject - Параметры:
-
that— Collator для сравнения с этим объектом. - Возвращает:
- true, если этот Collator совпадает с тем Collator; в противном случае — false.
- См. также:
hashCode
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/text/Collator.html