Класс Collator
- Все реализованные интерфейсы:
-
Cloneable,Comparator<Object>
- Прямые известные подклассы:
RuleBasedCollator
public abstract class Collator extends Object implements Comparator<Object>, Cloneable
Collator выполняет локально-чувствительное String сравнение. Вы используете этот класс для построения процедур поиска и сортировки текстов естественного языка. Collator является абстрактным базовым классом. Подклассы реализуют конкретные стратегии сортировки. Один подкласс, RuleBasedCollator, в настоящее время предоставляется платформой Java и применим к широкому спектру языков. Другие подклассы могут быть созданы для обработки более специализированных потребностей.
Как и другие классы, чувствительные к локализации, вы можете использовать статический фабричный метод getInstance для получения соответствующего объекта Collator для заданной локали. Вам потребуется рассмотреть подклассы 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");
}
Вы можете установить свойство силы 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 |
Значение силы сортировки. |
static final int |
NO_DECOMPOSITION |
Значение режима разложения. |
static final int |
PRIMARY |
Значение силы сортировки. |
static final int |
SECONDARY |
Значение силы сортировки. |
static final int |
TERTIARY |
Значение силы сортировки. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Переопределяет Cloneable |
int |
compare |
Сравнивает два аргумента для определения порядка. |
abstract int |
compare |
Сравнивает исходную строку с целевой строкой в соответствии с правилами сортировки для этого Collator. |
boolean |
equals |
Сравнивает равенство двух Collator. |
boolean |
equals |
Удобный метод для сравнения равенства двух строк на основе правил сортировки этого Collator. |
static Locale[] |
getAvailableLocales() |
Возвращает массив всех локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры. |
abstract CollationKey |
getCollationKey |
Преобразует строку в последовательность битов, которые могут быть сравнены побитово с другими CollationKeys. |
int |
getDecomposition() |
Получить режим разложения этого Collator. |
static Collator |
getInstance() |
Получить Collator для текущей локальной настройки по умолчанию. |
static Collator |
getInstance |
Получить Collator для желаемой локали. |
int |
getStrength() |
Возвращает свойство силы этого Collator. |
abstract int |
hashCode() |
Генерирует код хэша для этого Collator. |
void |
setDecomposition |
Установить режим разложения этого Collator. |
void |
setStrength |
Устанавливает свойство силы этого Collator. |
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе java.util.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().- Возвращает:
- Коллатор для локали по умолчанию (например, en_US).
- См. также:
getInstance
public static Collator getInstance(Locale desiredLocale)
ks" и/или "kk" параметры сортировки Unicode, этот метод вызовет setStrength(int) и/или setDecomposition(int) на созданном экземпляре, если указанные параметры сортировки Unicode распознаны на основе следующих соответствий: | Значения BCP 47 для силы (ks) | Постоянные коллатора для силы |
|---|---|
| level1 | PRIMARY |
| level2 | SECONDARY |
| level3 | TERTIARY* |
| identic | IDENTICAL |
| Значения BCP 47 для нормализации (kk) | Постоянные коллатора для декомпозиции |
| 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- желаемая локаль. - Возвращает:
- Коллатор для указанной локали.
- Внешние спецификации
- См. также:
compare
public abstract int compare(String source, String target)
Для однократного сравнения этот метод имеет наилучшую производительность. Если заданная строка будет участвовать во множественных сравнениях, CollationKey.compareTo имеет наилучшую производительность. См. описание класса Collator для примера использования CollationKeys.
- Parameters:
-
source- исходная строка. -
target- целевая строка. - Returns:
- Возвращает целочисленное значение. Значение меньше нуля, если исходная строка меньше целевой, значение равно нулю, если исходная и целевая строки равны, значение больше нуля, если исходная строка больше целевой.
- See Also:
compare
public int compare(Object o1, Object o2)
Эта реализация просто возвращает compare((String)o1, (String)o2) .
- Specified by:
-
compareв интерфейсеComparator<Object> - Parameters:
-
o1- первый сравниваемый объект. -
o2- второй сравниваемый объект. - Returns:
- отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше ли, равно или больше ли первый аргумент второго.
- Throws:
-
ClassCastException- аргументы не могут быть преобразованы в строки. - Since:
- 1.2
- See Also:
getCollationKey
public abstract CollationKey getCollationKey(String source)
- Parameters:
-
source- строка, которая должна быть преобразована в ключ сортировки. - Returns:
- CollationKey для заданной строки, основанный на правилах сортировки этого Collator. Если исходная строка null, возвращается null CollationKey.
- See Also:
equals
public boolean equals(String source, String target)
- Parameters:
-
source- исходная строка для сравнения. -
target- целевая строка для сравнения. - Returns:
- true, если строки равны в соответствии с правилами сортировки. false в противном случае.
- See Also:
getStrength
public int getStrength()
- Returns:
- текущее свойство силы этого Collator.
- See Also:
setStrength
public void setStrength(int newStrength)
- Parameters:
-
newStrength- новое значение силы. - Throws:
-
IllegalArgumentException- Если новое значение силы не является одним из PRIMARY, SECONDARY, TERTIARY или IDENTICAL. - See Also:
getDecomposition
public int getDecomposition()
Три значения для режима разложения:
- NO_DECOMPOSITION,
- CANONICAL_DECOMPOSITION
- FULL_DECOMPOSITION.
- Returns:
- режим разложения
- See Also:
setDecomposition
public void setDecomposition(int decompositionMode)
- Parameters:
-
decompositionMode- новый режим разложения. - Throws:
-
IllegalArgumentException- Если заданное значение не является допустимым режимом разложения. - See Also:
getAvailableLocales
public static Locale[] getAvailableLocales()
getInstance этого класса могут возвращать локализованные экземпляры. Возвращаемый массив представляет собой объединение локалей, поддерживаемых Java runtime и установленными реализациями CollatorProvider. Как минимум, возвращаемый массив должен содержать экземпляр Locale, равный Locale.ROOT, и экземпляр Locale, равный Locale.US.- Returns:
- Массив локалей, для которых доступны локализованные
Collatorэкземпляры.
clone
equals
public boolean equals(Object that)
- Specified by:
-
equalsв интерфейсеComparator<Object> - Overrides:
-
equalsв классеObject - Parameters:
-
that- Collator для сравнения с этим. - Returns:
- true, если этот Collator такой же, как Collator; иначе false.
- See Also:
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/text/Collator.html