Spec-Zone.ru › OpenJDK 17

Класс Collator

java.lang.Object
java.text.Collator
Все реализованные интерфейсы:
Cloneable, Comparator<Object>
Непосредственные подклассы:
RuleBasedCollator
public abstract class Collator extends Object implements Comparator<Object>, Cloneable
Класс Collator выполняет сравнение строк, учитывая локаль. Используйте этот класс для построения поисковых и сортировочных процедур для текстов естественного языка.

Collator является абстрактным базовым классом. Подклассы реализуют конкретные стратегии сортировки. В настоящее время с платформой Java предоставляется один подкласс RuleBasedCollator, который применим к широкому набору языков. Другие подклассы могут быть созданы для решения более узкоспециализированных задач.

Как и другие классы, чувствительные к локали, вы можете использовать статический фабричный метод 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" — идентичными. Следующее показывает, как можно проигнорировать регистр и ударения для US English.

 //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.
Примечание: 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, combining-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 Standard Annex #15: Unicode Normalization Forms.

См. также:
  • getDecomposition()
  • setDecomposition(int)
  • Значения константных полей

FULL_DECOMPOSITION

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

FULL_DECOMPOSITION соответствует форме нормализации KD, описанной в Unicode Standard Annex #15: Unicode Normalization Forms.

См. также:
  • getDecomposition()
  • setDecomposition(int)
  • Значения константных полей

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

Collator

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

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

getInstance

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

getInstance

public static Collator getInstance(Locale desiredLocale)
Получение объекта Collator для указанной локали.
Параметры:
desiredLocale - желаемая локаль.
Возвращает:
объект Collator для желаемой локали.
См. также:
  • Locale
  • ResourceBundle

compare

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

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

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

compare

public int compare(Object o1, Object o2)
Сравнивает два аргумента для определения порядка. Возвращает отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше, равно или больше первый аргумент, чем второй.

Эта реализация просто возвращает compare((String)o1, (String)o2) .

Указано в:
compare в интерфейсе Comparator<Object>
Параметры:
o1 - первый сравниваемый объект.
o2 - второй сравниваемый объект.
Возвращает:
отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше, равно или больше первый аргумент, чем второй.
Исключения:
ClassCastException - аргументы нельзя привести к строкам.
С момента:
1.2
См. также:
  • Comparator

getCollationKey

public abstract CollationKey getCollationKey(String source)
Преобразует строку в последовательность битов, которые можно сравнивать побитово с другими CollationKey. CollationKey обеспечивают лучшую производительность, чем Collator.compare, когда строки участвуют в нескольких сравнениях. См. описание класса Collator для примера использования CollationKeys.
Параметры:
source - строка, которая должна быть преобразована в ключ сортировки.
Возвращает:
CollationKey для заданной строки на основе правил сортировки этого объекта Collator. Если исходная строка null, возвращается null CollationKey.
См. также:
  • 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()
Возвращает массив всех локалей, для которых методы этого класса могут вернуть локализованные экземпляры. Возвращаемый массив представляет собой объединение локалей, поддерживаемых Java runtime, и установленных реализациями CollatorProvider. Он должен содержать по крайней мере экземпляр 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, 2021, 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/17/docs/api/java.base/java/text/Collator.html

Spec-Zone.ru

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