Интерфейс CharacterIterator
- Все суперинтерфейсы:
Cloneable
- Все известные дочерние интерфейсы:
AttributedCharacterIterator
- Все известные реализующие классы:
-
Segment,StringCharacterIterator
public interface CharacterIterator extends Cloneable
Итераторы поддерживают текущий индекс символа, допустимый диапазон которого от getBeginIndex() до getEndIndex(); значение getEndIndex() включено, чтобы позволить обработку текстовых диапазонов нулевой длины и по историческим причинам. Текущий индекс можно получить, вызвав метод getIndex(), и непосредственно установить, вызвав методы 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/text/CharacterIterator.html