Spec-Zone.ru › OpenJDK 25

Интерфейс 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', значение «не символ», которое не должно встречаться ни в одной допустимой строке Unicode.
См. также:
  • Значения констант полей

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

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()
Создает копию этого итератора
Возвращает:
копию этого объекта

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/CharacterIterator.html

Spec-Zone.ru

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