StringTokenizer
? Convertissez les String
en char[]
et répétez cela? Autre chose?
Réponses
Trop de publicités? J'utilise une boucle for. Et utilisez charAt()
. Comme la chaîne est implémentée avec un tableau, la méthode charAt()
est une opération à heure constante.
String s = "...stuff...";
for (int i = 0; i < s.length(); i++){
char c = s.charAt(i);
//Process char
}
C'est ce que je ferais. Cela me semble le plus facile.
En ce qui concerne l'exactitude, je ne crois pas que cela existe ici. Tout est basé sur votre style personnel.
Remarque la plupart des autres techniques décrites ici briser si vous avez à traiter avec des caractères en dehors de la BMP (Unicode Plan Multilingue de Base), c'est à dire les points de code qui sont à l'extérieur de la u0000-uFFFF gamme. Cela ne se produit que rarement, étant donné que le code des points à l'extérieur ce sont pour la plupart affectés à des langues mortes. Mais il y a certains caractères en dehors de cela, par exemple, certains points de code utilisé pour la notation mathématique, et certains ont utilisé pour encoder les noms propres Chinois.
Dans ce cas, votre code sera:
String str = "....";
int offset = 0, strLen = str.length();
while (offset < strLen) {
int curChar = str.codePointAt(offset);
offset += Character.charCount(curChar);
// do something with curChar
}
L' Character.charCount(int)
méthode nécessite Java 5+.