Интерфейс CharacterIterator
- Все суперинтерфейсы:
Cloneable
- Все известные подинтерфейсы:
AttributedCharacterIterator
- Все известные реализующие классы:
Segment, StringCharacterIterator
public interface CharacterIterator extends Cloneable
Итераторы поддерживают текущий индекс символа, допустимый диапазон которого — от 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);
}
}
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
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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 |
Устанавливает позицию в указанную позицию текста и возвращает этот символ. |
Подробное описание полей
DONE
static final char DONE
- См. также:
Подробное описание методов
first
char first()
- Возвращает:
- первый символ текста или DONE, если текст пуст
- См. также:
last
char last()
- Возвращает:
- последний символ текста или DONE, если текст пуст
- См. также:
current
char current()
- Возвращает:
- символ в текущей позиции или DONE, если текущая позиция находится за концом текста.
- См. также:
next
char next()
- Возвращает:
- символ в новой позиции или DONE, если новая позиция находится за пределами текстового диапазона.
previous
char previous()
- Возвращает:
- символ в новой позиции или 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, 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