This post is older than a year. Consider some information might not be accurate anymore.
This post is migrated from an article of my dokuWiki.
CharacterIterator it = new StringCharacterIterator("abcd");
// Iterate over the characters in the forward direction
for (char ch=it.first(); ch != CharacterIterator.DONE; ch=it.next()) {
// Use ch ...
}
// Iterate over the characters in the backward direction
for (char ch=it.last(); ch != CharacterIterator.DONE; ch=it.previous()) {
// Use ch ...
}
// Other methods
char ch = it.first(); // a
ch = it.current(); // a
ch = it.next(); // b
ch = it.current(); // b
ch = it.last(); // d
int pos = it.getIndex(); // 3
ch = it.next(); // DONE
pos = it.getIndex(); // 4
ch = it.previous(); // d
ch = it.setIndex(1); // b
// Change the characters
((StringCharacterIterator)it).setText("efgh");
ch = it.current(); // e
// Create an iterator on a substring (efgh)
int begin = 5;
int end = 9;
pos = 6;
it = new StringCharacterIterator("abcd efgh ijkl", begin, end, pos);
ch = it.current(); // f
ch = it.last(); // h