Интерфейс CharacterIterator

Все суперинтерфейсы:
Cloneable
Все известные дочерние интерфейсы:
AttributedCharacterIterator
Все известные реализующие классы:
Segment, StringCharacterIterator
public interface CharacterIterator
extends Cloneable

Этот интерфейс определяет протокол для двусторонней итерации по тексту. Итератор итерирует по ограниченной последовательности символов. Символы индексируются значениями, начинающимися со значения, возвращаемого getBeginIndex(), и продолжающимися до значения getEndIndex()-1.

Итераторы хранят текущий индекс символа, диапазон допустимых значений которого составляет от getBeginIndex() до getEndIndex(); значение getEndIndex() включено, чтобы позволить обработку текстовых диапазонов длиной ноль и по историческим причинам. Текущий индекс можно получить, вызвав getIndex(), и установить напрямую, вызвав setIndex(), first() и last().

Методы previous() и next() используются для итерации. Они возвращают DONE, если они попытаются переместиться за пределы диапазона от getBeginIndex() до getEndIndex() -1, сигнализируя о том, что итератор достиг конца последовательности. DONE также возвращается другими методами, чтобы указать, что текущий индекс находится вне этого диапазона.

Примеры:

Пройти по тексту от начала до конца

public void traverseForward(CharacterIterator iter) {
     for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
         processChar(c);
     }
 }
Пройти по тексту в обратном направлении, от конца к началу
public void traverseBackward(CharacterIterator iter) {
     for(char c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
         processChar(c);
     }
 }
Пройти по тексту как вперед, так и назад из заданной позиции в тексте. Вызовы неBoundary() в этом примере представляют некоторые дополнительные критерии остановки.
public void traverseOut(CharacterIterator iter, int pos) {
     for (char c = iter.setIndex(pos);
              c != CharacterIterator.DONE && notBoundary(c);
              c = iter.next()) {
     }
     int end = iter.getIndex();
     for (char c = iter.setIndex(pos);
             c != CharacterIterator.DONE && notBoundary(c);
             c = iter.previous()) {
     }
     int start = iter.getIndex();
     processSection(start, end);
 }
С:
1.1
См. также:
StringCharacterIterator, AttributedCharacterIterator

Поля

Модификатор и тип Поле Описание
static char DONE

Константа, которая возвращается, когда итератор достиг либо конца, либо начала текста.

Методы

Модификатор и тип Метод Описание
Object clone()

Создает копию этого итератора

char current()

Получает символ в текущей позиции (как возвращается getIndex()).

char first()

Устанавливает позицию на getBeginIndex() и возвращает символ в этой позиции.

int getBeginIndex()

Возвращает начальный индекс текста.

int getEndIndex()

Возвращает конечный индекс текста.

int getIndex()

Возвращает текущий индекс.

char last()

Устанавливает позицию на getEndIndex()-1 (getEndIndex(), если текст пустой) и возвращает символ в этой позиции.

char next()

Увеличивает индекс итератора на единицу и возвращает символ в новом индексе.

char previous()

Уменьшает индекс итератора на единицу и возвращает символ в новом индексе.

char setIndex​(int position)

Устанавливает позицию в заданную позицию в тексте и возвращает этот символ.

Поля

DONE

static final char DONE

Константа, которая возвращается, когда итератор достиг либо конца, либо начала текста. Значение равно '\\uFFFF', значению "не символ", которое не должно встречаться в любом валидном строке Юникода.

См. также:
Значения константных полей

Методы

first

char first()

Устанавливает позицию на getBeginIndex() и возвращает символ в этой позиции.

Возвращает:
первый символ в тексте или DONE, если текст пустой
См. также:
getBeginIndex()

last

char last()

Устанавливает позицию на getEndIndex()-1 (getEndIndex(), если текст пустой) и возвращает символ в этой позиции.

Возвращает:
последний символ в тексте или DONE, если текст пустой
См. также:
getEndIndex()

current

char current()

Получает символ в текущей позиции (как возвращается getIndex()).

Возвращает:
символ в текущей позиции или DONE, если текущая позиция находится за пределами текста.
См. также:
getIndex()

next

char next()

Увеличивает индекс итератора на единицу и возвращает символ в новом индексе. Если результирующий индекс больше или равен getEndIndex(), текущий индекс устанавливается в getEndIndex(), и возвращается значение DONE.

Возвращает:
символ в новой позиции или DONE, если новая позиция находится за пределами диапазона текста.

previous

char previous()

Уменьшает индекс итератора на единицу и возвращает символ в новом индексе. Если текущий индекс равен getBeginIndex(), индекс остается на getBeginIndex(), и возвращается значение DONE.

Возвращает:
символ в новой позиции или DONE, если текущая позиция равна getBeginIndex().

setIndex

char setIndex(int position)

Устанавливает позицию в заданную позицию в тексте и возвращает этот символ.

Параметры:
position - позиция в тексте. Допустимые значения находятся в диапазоне от getBeginIndex() до getEndIndex(). Если предоставлено недопустимое значение, выбрасывается IllegalArgumentException.
Возвращает:
символ в заданной позиции или DONE, если заданная позиция равна getEndIndex()

getBeginIndex

int getBeginIndex()

Возвращает начальный индекс текста.

Возвращает:
индекс, с которого начинается текст.

getEndIndex

int getEndIndex()

Возвращает конечный индекс текста. Этот индекс — индекс первого символа, следующего за концом текста.

Возвращает:
индекс после последнего символа в тексте

getIndex

int getIndex()

Возвращает текущий индекс.

Возвращает:
текущий индекс.

clone

Object clone()

Создает копию этого итератора

Возвращает:
Копию этого

© 1993, 2020, 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/11/docs/api/java.base/java/text/CharacterIterator.html

Spec-Zone .ru
спецификации, руководства, описания, API