Класс 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').
Ключ символа — это целое число, состоящее из основного порядка (short), вторичного порядка (byte) и третичного порядка (byte). Java строго определяет размер и знаковость своих примитивных типов данных. Поэтому статические функции primaryOrder, secondaryOrder и tertiaryOrder возвращают соответственно int, short и short, чтобы гарантировать корректность значения ключа. Пример использования итератора:
String testString = "This is a test"; Collator col = Collator.getInstance(); if (col instanceof RuleBasedCollator ruleBasedCollator) { CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString); int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next()); â® }
CollationElementIterator.next возвращает порядок колляции следующего символа. Порядок колляции состоит из основного, вторичного и третичного порядков. Тип данных порядка колляции — int. Первые 16 бит порядка колляции составляют его основной порядок; следующие 8 бит — вторичный порядок, а последние 8 бит — третичный порядок.
Примечание: CollationElementIterator является частью реализации RuleBasedCollator. Его можно использовать только с экземплярами RuleBasedCollator.
- Начиная с:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
NULLORDER |
Нулевой порядок, указывающий, что курсор достиг конца строки. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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— порядок колляции, возвращённый методом previous или next. - Возвращает:
- максимальную длину любой последовательности расширения, заканчивающейся указанным порядком.
- Начиная с:
- 1.2
setText
public void setText(String source)
- Параметры:
-
source— новый исходный текст - Начиная с:
- 1.2
setText
public void setText(CharacterIterator source)
- Параметры:
-
source— новый исходный текст. - Начиная с:
- 1.2
© 1993, 2025, 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/25/docs/api/java.base/java/text/CollationElementIterator.html