Класс 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, как описано в Приложении к стандарту Unicode #15: Формы нормализации Unicode.
- Внешние спецификации
- См. также:
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION
FULL_DECOMPOSITION соответствует форме нормализации KD, как описано в Приложении к стандарту Unicode #15: Формы нормализации 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 имеет наилучшую производительность. См. описание класса 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:
- ключ сортировки для заданной строки на основе правил сортировки этого 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-средой выполнения и установленными реализациями CollatorProvider. Как минимум, возвращаемый массив должен содержать экземпляр Locale , равный Locale.ROOT, и экземпляр Locale , равный Locale.US.- Returns:
- Массив локалей, для которых доступны локализованные
Collatorэкземпляры.
clone
public Object clone()
- Overrides:
-
cloneв классеObject - Returns:
- клонированный экземпляр.
- See Also:
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
public abstract int hashCode()
- Overrides:
-
hashCodeв классеObject - Returns:
- значение кода хэширования для этого объекта.
- See Also:
© 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