Spec-Zone.ru › OpenJDK 24

Класс CollationElementIterator

java.lang.Object
java.text.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) {
    CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString);
    int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next());
        ⋮
}

CollationElementIterator.next возвращает порядок сортировки следующего символа. Порядок сортировки состоит из первичного, вторичного и третичного порядка. Тип данных порядка сортировки — int. Первые 16 бит порядка сортировки — это первичный порядок; следующие 8 бит — вторичный порядок, а последние 8 бит — третичный порядок.

Примечание: CollationElementIterator является частью реализации RuleBasedCollator. Он используется только с экземплярами RuleBasedCollator.

Since:
1.1
См. также:
  • Collator
  • RuleBasedCollator

Краткое описание полей

Модификатор и тип Поле Описание
static final int NULLORDER
Порядок NULL, указывающий на достижение конца строки курсором.

Краткое описание методов

Модификатор и тип Метод Описание
int getMaxExpansion(int order)
Возвращает максимальную длину любых расширяющих последовательностей, которые заканчиваются указанным порядком сравнения.
int getOffset()
Возвращает смещение символа в исходном тексте, соответствующее следующему элементу сортировки.
int next()
Получает следующий элемент сортировки в строке.
int previous()
Получает предыдущий элемент сортировки в строке.
static final int primaryOrder(int order)
Возвращает первичную компоненту элемента сортировки.
void reset()
Сбрасывает курсор в начало строки.
static final short secondaryOrder(int order)
Возвращает вторичную компоненту элемента сортировки.
void setOffset(int newOffset)
Устанавливает итератор на указанный элемент сортировки, соответствующий заданному символу (параметр — смещение символа в исходной строке, а не смещение в соответствующей последовательности элементов сортировки).
void setText(String source)
Устанавливает новую строку для итерации.
void setText(CharacterIterator source)
Устанавливает новую строку для итерации.
static final short tertiaryOrder(int order)
Возвращает третичную компоненту элемента сортировки.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

NULLORDER

public static final int NULLORDER
Нулевой порядок, который указывает на достижение курсором конца строки.
См. также:
  • Значения константных полей

Подробное описание методов

reset

public void reset()
Сбрасывает курсор к началу строки. Следующий вызов next() вернёт первый элемент сортировки в строке.

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)
Устанавливает итератор, чтобы он указывал на элемент сортировки, соответствующий указанному символу (параметр — смещение символа в исходной строке, а не смещение в соответствующей последовательности элементов сортировки). Значение, возвращаемое следующим вызовом next(), будет элементом сортировки, соответствующим заданной позиции в тексте. Если эта позиция находится в середине последовательности сжимаемых символов, результатом следующего вызова next() будет элемент сортировки для этой последовательности. Это означает, что getOffset() не гарантирует возвращение того же значения, что и передаваемое в предыдущем вызове setOffset().
Параметры:
newOffset - Новое смещение символа в исходном тексте.
С:
1.2

getOffset

public int getOffset()
Возвращает смещение символа в исходном тексте, соответствующее следующему элементу сортировки. (То есть getOffset() возвращает позицию в тексте, соответствующую элементу сортировки, который будет возвращён следующим вызовом next().) Это значение всегда будет индексом ПЕРВОГО символа, соответствующего элементу сортировки (последовательность сжимаемых символов — это когда два или более символов соответствуют одному и тому же элементу сортировки). Это означает, что если вы вызываете setOffset(x) сразу после getOffset(), getOffset() не обязательно вернёт x.
Возвращает:
Смещение символа в исходном тексте, соответствующее элементу сортировки, который будет возвращён следующим вызовом 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, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/text/CollationElementIterator.html

Spec-Zone.ru

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