Класс CollationElementIterator
public final class CollationElementIterator extends Object
CollationElementIterator используется в качестве итератора для перебора каждого символа в строке с международной поддержкой. Используйте итератор для возвращения приоритета упорядочения текущего символа. Приоритет упорядочения символа, который мы называем ключом, определяет, как символ сортируется в данном объекте сортировки. Например, рассмотрим следующий случай на испанском языке:
"ca" → the first key is key('c') and second key is key('a').
"cha" → the first key is key('ch') and second key is key('a').
А на немецком языке:
"äb" → the first key is key('a'), the second key is key('e'), and
the third key is key('b').
Ключ символа — целое число, составленное из первичного порядка (короткий), вторичного порядка (байт) и третичного порядка (байт). Java строго определяет размер и знаковость своих примитивных типов данных. Поэтому статические функции primaryOrder, secondaryOrder, и tertiaryOrder возвращают int, short, и short соответственно для обеспечения правильности значения ключа. Пример использования итератора:
String testString = "This is a test";
Collator col = Collator.getInstance();
if (col instanceof RuleBasedCollator) {
RuleBasedCollator ruleBasedCollator = (RuleBasedCollator)col;
CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString);
int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next());
:
}
CollationElementIterator.next возвращает порядок сортировки следующего символа. Порядок сортировки состоит из первичного, вторичного и третичного порядка. Тип данных порядка сортировки — int. Первые 16 бит порядка сортировки — это первичный порядок, следующие 8 бит — вторичный порядок, а последние 8 бит — третичный порядок.
Примечание: CollationElementIterator является частью реализации RuleBasedCollator. Он может быть использован только с экземплярами RuleBasedCollator.
- Since:
- 1.1
- See Also:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
NULLORDER |
Порядок NULL, который указывает на достижение конца строки курсором. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
getMaxExpansion |
Возвращает максимальную длину любых последовательностей расширения, которые заканчиваются указанным порядком сравнения. |
int |
getOffset() |
Возвращает смещение символа в исходном тексте, соответствующее следующему элементу сортировки. |
int |
next() |
Получение следующего элемента сортировки в строке. |
int |
previous() |
Получение предыдущего элемента сортировки в строке. |
static final int |
primaryOrder |
Возвращает первичную составляющую элемента сортировки. |
void |
reset() |
Сбрасывает курсор в начало строки. |
static final short |
secondaryOrder |
Возвращает вторичную составляющую элемента сортировки. |
void |
setOffset |
Устанавливает итератор на элемент сортировки, соответствующий указанному символу (параметр — смещение СИМВОЛА в исходной строке, а не смещение в соответствующей последовательности элементов сортировки). |
void |
setText |
Установка новой строки для итерации. |
void |
setText |
Установка новой строки для итерации. |
static final short |
tertiaryOrder |
Возвращает третичную составляющую элемента сортировки. |
Подробное описание полей
NULLORDER
public static final int NULLORDER
- См. также:
Подробное описание методов
reset
public void reset()
next
public int next()
Этот итератор проходит по последовательности элементов сортировки, построенных из строки. Поскольку не обязательно существует взаимно однозначное соответствие между символами и элементами сортировки, это не означает то же самое, что «вернуть элемент сортировки [или приоритет упорядочивания] следующего символа в строке».
Эта функция возвращает элемент сортировки, на который в данный момент указывает итератор, а затем обновляет внутренний указатель, чтобы он указывал на следующий элемент. previous() обновляет указатель сначала, а затем возвращает элемент. Это означает, что при изменении направления при итерации (т. е. вызов next(), а затем вызов previous(), или вызов previous(), а затем вызов next()), вы получите тот же элемент дважды.
- Возвращает:
- следующий элемент сортировки
previous
public int previous()
Этот итератор проходит по последовательности элементов сортировки, построенных из строки. Поскольку не обязательно существует взаимно однозначное соответствие между символами и элементами сортировки, это не означает то же самое, что «вернуть элемент сортировки [или приоритет упорядочивания] предыдущего символа в строке».
Эта функция обновляет внутренний указатель итератора, чтобы он указывал на элемент сортировки, предшествующий текущему, а затем возвращает этот элемент, в то время как next() возвращает текущий элемент и затем обновляет указатель. Это означает, что при изменении направления при итерации (т. е. вызов next(), а затем вызов previous(), или вызов previous(), а затем вызов next()), вы получите тот же элемент дважды.
- Возвращает:
- предыдущий элемент сортировки
- С момента:
- 1.2
primaryOrder
public static final int primaryOrder(int order)
- Параметры:
-
order- элемент сортировки - Возвращает:
- первичную составляющую элемента
secondaryOrder
public static final short secondaryOrder(int order)
- Параметры:
-
order- элемент сортировки - Возвращает:
- вторичную составляющую элемента
tertiaryOrder
public static final short tertiaryOrder(int order)
- Параметры:
-
order- элемент сортировки - Возвращает:
- третичную составляющую элемента
setOffset
public void setOffset(int newOffset)
- Параметры:
-
newOffset- Новое смещение символа в исходном тексте. - С момента:
- 1.2
getOffset
public int getOffset()
- Возвращает:
- Смещение символа в исходном тексте, соответствующее элементу сортировки, который будет возвращён следующим вызовом next().
- С момента:
- 1.2
getMaxExpansion
public int getMaxExpansion(int order)
- Параметры:
-
order- порядок сортировки, возвращённый предыдущим или следующим. - Возвращает:
- максимальную длину последовательностей расширения, оканчивающихся указанным порядком.
- С момента:
- 1.2
setText
public void setText(String source)
- Параметры:
-
source- новый исходный текст - С момента:
- 1.2
setText
public void setText(CharacterIterator source)
- Параметры:
-
source- новый исходный текст. - С момента:
- 1.2
© 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/CollationElementIterator.html