Класс 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
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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 Standard Annex #15: Unicode Normalization Forms.
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION
FULL_DECOMPOSITION соответствует форме нормализации KD, описанной в Unicode Standard Annex #15: Unicode Normalization Forms.
Подробное описание конструкторов
Collator
protected Collator()
- См. также:
Подробное описание методов
getInstance
public static Collator getInstance()
- Возвращает:
- объект Collator для локали по умолчанию (например, en_US)
- См. также:
getInstance
public static Collator getInstance(Locale desiredLocale)
- Параметры:
-
desiredLocale- желаемая локаль. - Возвращает:
- объект Collator для желаемой локали.
- См. также:
compare
public abstract int compare(String source, String target)
Для однократного сравнения этот метод имеет лучшую производительность. Если заданная строка будет участвовать в нескольких сравнениях, CollationKey.compareTo имеет лучшую производительность. См. описание класса Collator для примера использования CollationKeys.
- Параметры:
-
source- исходная строка. -
target- целевая строка. - Возвращает:
- Возвращает целое число. Значение меньше нуля, если исходная строка меньше целевой, значение равно нулю, если исходная и целевая строки равны, значение больше нуля, если исходная строка больше целевой.
- См. также:
compare
public int compare(Object o1, Object o2)
Эта реализация просто возвращает compare((String)o1, (String)o2) .
- Указано в:
-
compareв интерфейсеComparator<Object> - Параметры:
-
o1- первый сравниваемый объект. -
o2- второй сравниваемый объект. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, в зависимости от того, меньше, равно или больше первый аргумент, чем второй.
- Исключения:
-
ClassCastException- аргументы нельзя привести к строкам. - С момента:
- 1.2
- См. также:
getCollationKey
public abstract CollationKey getCollationKey(String source)
- Параметры:
-
source- строка, которая должна быть преобразована в ключ сортировки. - Возвращает:
- CollationKey для заданной строки на основе правил сортировки этого объекта Collator. Если исходная строка null, возвращается null CollationKey.
- См. также:
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()
CollatorProvider. Он должен содержать по крайней мере экземпляр 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, 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