Le pattern d'itération est mis en 3#3uvre dans d'autres contextes que les collections, notamment pour les chaînes de caractères. L'API de Java dispose d'une classe StringTokenizer, dans le paquet java.util qui permet de découper une chaîne en sous-chaînes séparées par des caractères délimiteurs. Cette classe a un constructeur à deux arguments : la chaîne à découper, et la chaîne des caractères délimiteurs. Une instance de cette classe fonctionne comme un itérateur, avec les méthodes hasMoreTokens, analogue à hasNext et nextToken, analogue à next, mais retournant un String. Par exemple,
import java.util.StringTokenizer; class Token { public static void main(String[] args) { StringTokenizer st = new StringTokenizer("/usr/local/java", "/"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } } }
imprime sur la sortie standard :
usr local java
Plusieurs caractères délimiteurs peuvent être spécifiés comme deuxième argument du constructeur. Ainsi, si l'on veut découper une ligne d'un texte en une suite de mots, on définira le StringTokenizer suivant :
String ligne = ...; StringTokenizer st = new StringTokenizer(ligne, "\t .,;:?!()\"'");