Loading...

Use CharacterIterator to iterate over the characters of a String

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