Spec-Zone.ru › OpenJDK 8

Класс 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.
Примечание: CollationKey из разных Collator сравнить нельзя. См. описание класса CollationKey для примера использования CollationKey.

См. также:
RuleBasedCollator, CollationKey, CollationElementIterator, Locale

Поля

Модификатор и тип Поле и описание
static int CANONICAL_DECOMPOSITION

Значение режима разложения.

static int FULL_DECOMPOSITION

Значение режима разложения.

static int IDENTICAL

Значение силы сортировки.

static int NO_DECOMPOSITION

Значение режима разложения.

static int PRIMARY

Значение силы сортировки.

static int SECONDARY

Значение силы сортировки.

static int TERTIARY

Значение силы сортировки.

Конструкторы

Модификатор Конструктор и описание
protected Collator()

Конструктор по умолчанию.

Методы

Модификатор и тип Метод и описание
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

comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, 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 Technical Report #15.

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

FULL_DECOMPOSITION

public static final int FULL_DECOMPOSITION

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

FULL_DECOMPOSITION соответствует форме нормализации KD, как описано в Unicode Technical Report #15.

См. также:
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)

Преобразует строку в последовательность битов, которые можно сравнивать побитово с другими CollationKeys. CollationKeys обеспечивают лучшую производительность, чем 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.

Параметры:
source - строка-источник для сравнения.
target - строка-цель для сравнения.
Возвращает:
true, если строки равны согласно правилам сортировки. false, в противном случае.
См. также:
compare(java.lang.String, java.lang.String)

getStrength

public int getStrength()

Возвращает свойство силы данного Collator. Свойство силы определяет минимальный уровень различий, считаемый значимым при сравнении. См. описание класса Collator для примера использования.

Возвращает:
текущее свойство силы данного Collator.
См. также:
setStrength(int), PRIMARY, SECONDARY, TERTIARY, IDENTICAL

setStrength

public void setStrength(int newStrength)

Устанавливает свойство силы данного Collator. Свойство силы определяет минимальный уровень различий, считаемый значимым при сравнении. См. описание класса Collator для примера использования.

Параметры:
newStrength - новое значение силы.
Исключения:
IllegalArgumentException - если новое значение силы не является одним из PRIMARY, SECONDARY, TERTIARY или IDENTICAL.
См. также:
getStrength(), PRIMARY, SECONDARY, TERTIARY, IDENTICAL

getDecomposition

public int getDecomposition()

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

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

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

setDecomposition

public void setDecomposition(int decompositionMode)

Установить режим разложения этого Collator. См. getDecomposition для описания режима разложения.

Параметры:
decompositionMode - новый режим разложения.
Исключения:
IllegalArgumentException - Если заданное значение не является допустимым режимом разложения.
См. также:
getDecomposition(), NO_DECOMPOSITION, CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION

getAvailableLocales

public static Locale[] getAvailableLocales()

Возвращает массив всех локалей, для которых методы этого класса могут вернуть локализованные экземпляры. Возвращаемый массив представляет собой объединение локалей, поддерживаемых Java-средой выполнения и установленных реализациями CollatorProvider. Он должен содержать по крайней мере экземпляр Locale, равный Locale.US.

Возвращает:
Массив локалей, для которых доступны локализованные Collator экземпляры.

clone

public Object clone()

Переопределяет Cloneable

Переопределяет:
clone в классе Object
Возвращает:
клонированный экземпляр.
См. также:
Cloneable

equals

public boolean equals(Object that)

Сравнивает равенство двух Collator.

Задано в:
equals в интерфейсе Comparator<Object>
Переопределяет:
equals в классе Object
Параметры:
that - Collator для сравнения с этим.
Возвращает:
true, если этот Collator такой же, как и Collator; false в противном случае.
См. также:
Object.hashCode(), HashMap

hashCode

public abstract int hashCode()

Генерирует хэш-код для этого Collator.

Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого объекта.
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

© 1993, 2020, 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.

Spec-Zone.ru

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