Spec-Zone.ru › OpenJDK 21

Интерфейс 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);
    }
}
Проход вперёд и назад из заданной позиции в тексте. Вызовы notBoundary() в этом примере представляют некоторые дополнительные критерии остановки.
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 final 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, 2023, 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/21/docs/api/java.base/java/text/CharacterIterator.html

Spec-Zone.ru

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