Spec-Zone.ru › OpenJDK 21

Класс Collator

java.lang.Object
java.text.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
См. также:
  • RuleBasedCollator
  • CollationKey
  • CollationElementIterator
  • Locale

Краткое описание полей

Модификатор и тип Поле Описание
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
Значение силы сортировки.

Краткое описание конструкторов

Collator()
Модификатор Конструктор Описание
protected
Конструктор по умолчанию.

Краткое описание методов

Модификатор и тип Метод Описание
Object clone()
Переопределяет Cloneable
int compare(Object o1, Object o2)
Сравнивает два аргумента на упорядоченность.
abstract int compare(String source, String target)
Сравнивает исходную строку с целевой строкой в соответствии с правилами сортировки для этого объекта Collator.
boolean equals(Object that)
Сравнивает равенство двух объектов Collator.
boolean equals(String source, String target)
Удобный метод для сравнения равенства двух строк на основе правил сортировки этого объекта Collator.
static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры.
abstract CollationKey getCollationKey(String source)
Преобразует строку в серию битов, которые можно сравнивать побитово с другими CollationKeys.
int getDecomposition()
Получить режим разложения этого объекта Collator.
static Collator getInstance()
Получить объект Collator для текущей локали по умолчанию.
static Collator getInstance(Locale desiredLocale)
Получить объект Collator для желаемой локали.
int getStrength()
Возвращает свойство силы этого объекта Collator.
abstract int hashCode()
Генерирует хэш-код для этого объекта Collator.
void setDecomposition(int decompositionMode)
Установить режим разложения этого объекта Collator.
void setStrength(int newStrength)
Устанавливает свойство силы этого объекта 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
Значение силы сортировки. При установке учитываются только различия PRIMARY при сравнении. Присвоение сил языковым особенностям зависит от региональных параметров. Пример: разные основные буквы ("a" и "b") считаются PRIMARY различием.
См. также:
  • setStrength(int)
  • getStrength()
  • Значения константных полей

SECONDARY

public static final int SECONDARY
Значение силы сортировки. При установке учитываются только различия SECONDARY и выше при сравнении. Присвоение сил языковым особенностям зависит от региональных параметров. Пример: различные акцентированные формы одной и той же основной буквы ("a" и "ä") считаются различием SECONDARY.
См. также:
  • setStrength(int)
  • getStrength()
  • Значения константных полей

TERTIARY

public static final int TERTIARY
Значение силы сортировки. При установке учитываются только различия TERTIARY и выше при сравнении. Присвоение сил языковым особенностям зависит от региональных параметров. Пример: различия в регистре ("a" и "A") считаются различием TERTIARY.
См. также:
  • setStrength(int)
  • getStrength()
  • Значения константных полей

IDENTICAL

public static final int IDENTICAL
Значение силы сортировки. При установке все различия считаются значимыми при сравнении. Присвоение сил языковым особенностям зависит от региональных параметров. Пример: управляющие символы ("\u0001" и "\u0002") считаются одинаковыми на уровнях PRIMARY, SECONDARY и TERTIARY, но различными на уровне IDENTICAL. Кроме того, различия между предварительно составленными акцентами, такими как "\u00C0" (A-grave), и комбинированными акцентами, такими как "A\u0300" (A, комбинированный-grave), будут считаться значимыми на уровне IDENTICAL, если декомпозиция установлена в NO_DECOMPOSITION.
См. также:
  • Значения константных полей

NO_DECOMPOSITION

public static final int NO_DECOMPOSITION
Значение режима декомпозиции. При установке NO_DECOMPOSITION, акцентированные символы не будут декомпозированы для сортировки. Это значение обеспечивает самую быструю сортировку, но даст корректные результаты только для языков, не использующих акценты.
См. также:
  • getDecomposition()
  • setDecomposition(int)
  • Значения константных полей

CANONICAL_DECOMPOSITION

public static final int CANONICAL_DECOMPOSITION
Значение режима декомпозиции. При установке CANONICAL_DECOMPOSITION, символы, являющиеся каноническими вариантами согласно стандарту Unicode, будут декомпозированы для сортировки. Это необходимо для правильной сортировки акцентированных символов.

CANONICAL_DECOMPOSITION соответствует форме нормализации D, как описано в Приложении к стандарту Unicode #15: Формы нормализации Unicode.

Внешние спецификации
  • Формы нормализации Unicode
См. также:
  • getDecomposition()
  • setDecomposition(int)
  • Значения константных полей

FULL_DECOMPOSITION

public static final int FULL_DECOMPOSITION
Значение режима декомпозиции. При установке FULL_DECOMPOSITION, как канонические, так и совместимые варианты символов Unicode будут декомпозированы для сортировки. Это позволяет сортировать не только акцентированные символы, но и символы со специальными форматами, сравнивая их с нормальной формой. Например, символы ASCII и катаканы в половинной и полной ширине сортируются вместе. FULL_DECOMPOSITION - наиболее полный и, соответственно, самый медленный режим декомпозиции.

FULL_DECOMPOSITION соответствует форме нормализации KD, как описано в Приложении к стандарту Unicode #15: Формы нормализации Unicode.

Внешние спецификации
  • Формы нормализации Unicode
См. также:
  • getDecomposition()
  • setDecomposition(int)
  • Значения константных полей

Подробное описание конструкторов

Collator

protected Collator()
Конструктор по умолчанию. Этот конструктор защищен, чтобы подклассы могли к нему получить доступ. Пользователи обычно создают подкласс Collator, вызывая фабричный метод getInstance.
См. также:
  • getInstance()

Подробное описание методов

getInstance

public static Collator getInstance()
Получает Collator для текущего языка по умолчанию. Текущий язык по умолчанию определяется Locale.getDefault().
Возвращает:
Collator для языка по умолчанию (например, en_US)
См. также:
  • Locale.getDefault()

getInstance

public static Collator getInstance(Locale desiredLocale)
Получает Collator для заданного языка. Если у заданного языка есть "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*
Звёздочка (*) обозначает значение по умолчанию. Если указанное значение не распознаётся, сила и/или декомпозиция не переопределяются, как если бы не было опций сортировки BCP 47 в желаемом языке.
Примечание для API:
Реализации класса Collator могут создавать разные экземпляры в зависимости от "co" идентификатора сортировки Unicode в desiredLocale. Например:
Collator.getInstance(Locale.forLanguageTag("sv-u-co-trad"));
может вернуть экземпляр Collator с традиционной шведской сортировкой, которая даёт 'v' и 'w' одинаковый порядок сортировки, тогда как экземпляр Collator для шведского языка без идентификатора "co" различает 'v' и 'w'.
Параметры:
desiredLocale - желаемый язык.
Возвращает:
Collator для заданного языка.
Внешние спецификации
  • Язык разметки данных локалей Unicode (LDML)
См. также:
  • Locale
  • ResourceBundle

compare

public abstract int compare(String source, String target)
Сравнивает исходную строку с целевой строкой в соответствии с правилами сортировки для данного Collator. Возвращает целое число, меньшее, равное или больше нуля в зависимости от того, меньше ли, равна или больше исходная строка, чем целевая строка. См. описание класса Collator для примера использования.

Для однократного сравнения этот метод имеет наилучшую производительность. Если заданная строка будет участвовать в нескольких сравнениях, метод CollationKey.compareTo имеет наилучшую производительность. См. описание класса Collator для примера использования CollationKeys.

Parameters:
source - исходная строка.
target - целевая строка.
Returns:
Возвращает целое значение. Значение меньше нуля, если исходная строка меньше целевой, значение равно нулю, если исходная и целевая строки равны, значение больше нуля, если исходная строка больше целевой.
See Also:
  • CollationKey
  • getCollationKey(java.lang.String)

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:
  • Comparator

getCollationKey

public abstract CollationKey getCollationKey(String source)
Преобразует строку в последовательность битов, которые можно сравнивать побитово с другими CollationKeys. CollationKeys обеспечивают лучшую производительность, чем Collator.compare, когда строки участвуют в нескольких сравнениях. См. описание класса Collator для примера использования CollationKeys.
Parameters:
source - строка, которая должна быть преобразована в ключ сортировки.
Returns:
ключ сортировки для заданной строки на основе правил сортировки этого Collator. Если исходная строка равна null, возвращается null CollationKey.
See Also:
  • CollationKey
  • compare(java.lang.String, java.lang.String)

equals

public boolean equals(String source, String target)
Удобный метод для сравнения равенства двух строк на основе правил сортировки этого Collator.
Parameters:
source - исходная строка для сравнения.
target - целевая строка для сравнения.
Returns:
true, если строки равны в соответствии с правилами сортировки. false в противном случае.
See Also:
  • compare(java.lang.String, java.lang.String)

getStrength

public int getStrength()
Возвращает свойство силы этого Collator. Свойство силы определяет минимальный уровень различия, считающийся значимым во время сравнения. См. описание класса Collator для примера использования.
Returns:
текущее свойство силы этого Collator.
See Also:
  • setStrength(int)
  • PRIMARY
  • SECONDARY
  • TERTIARY
  • IDENTICAL

setStrength

public void setStrength(int newStrength)
Устанавливает свойство силы этого Collator. Свойство силы определяет минимальный уровень различия, считающийся значимым во время сравнения. См. описание класса Collator для примера использования.
Parameters:
newStrength - новое значение силы.
Throws:
IllegalArgumentException - Если новое значение силы не равно PRIMARY, SECONDARY, TERTIARY или IDENTICAL.
See Also:
  • getStrength()
  • PRIMARY
  • SECONDARY
  • TERTIARY
  • IDENTICAL

getDecomposition

public int getDecomposition()
Получить режим разложения этого Collator. Режим разложения определяет, как обрабатываются составные символы Unicode. Настройка режима разложения позволяет пользователю выбирать между более быстрым и более полным поведением сортировки.

Три значения для режима разложения:

  • NO_DECOMPOSITION,
  • CANONICAL_DECOMPOSITION
  • FULL_DECOMPOSITION.
См. документацию для этих трех констант для описания их значения.
Returns:
режим разложения
See Also:
  • setDecomposition(int)
  • NO_DECOMPOSITION
  • CANONICAL_DECOMPOSITION
  • FULL_DECOMPOSITION

setDecomposition

public void setDecomposition(int decompositionMode)
Установить режим разложения этого Collator. См. getDecomposition для описания режима разложения.
Parameters:
decompositionMode - новый режим разложения.
Throws:
IllegalArgumentException - Если заданное значение не является допустимым режимом разложения.
See Also:
  • getDecomposition()
  • NO_DECOMPOSITION
  • CANONICAL_DECOMPOSITION
  • FULL_DECOMPOSITION

getAvailableLocales

public static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы класса getInstance могут возвращать локализованные экземпляры. Возвращаемый массив представляет собой объединение локалей, поддерживаемых Java-средой выполнения и установленными реализациями CollatorProvider. Как минимум, возвращаемый массив должен содержать экземпляр Locale , равный Locale.ROOT, и экземпляр Locale , равный Locale.US.
Returns:
Массив локалей, для которых доступны локализованные Collator экземпляры.

clone

public Object clone()
Переопределяет Cloneable
Overrides:
clone в классе Object
Returns:
клонированный экземпляр.
See Also:
  • Cloneable

equals

public boolean equals(Object that)
Сравнивает равенство двух Collator.
Specified by:
equals в интерфейсе Comparator<Object>
Overrides:
equals в классе Object
Parameters:
that - Collator для сравнения с этим.
Returns:
true, если этот Collator такой же, как тот Collator; false в противном случае.
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public abstract int hashCode()
Генерирует код хэширования для данного Collator.
Overrides:
hashCode в классе Object
Returns:
значение кода хэширования для этого объекта.
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 1993, 2023, 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/21/docs/api/java.base/java/text/Collator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API