Интерфейс 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);
}
}
Проход как вперёд, так и назад от заданной позиции в тексте. Вызовы 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
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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, 2021, 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/17/docs/api/java.base/java/text/CharacterIterator.html