Caractères de String comme stream
Traitez les caractères d'une chaîne comme un pipeline de stream.
Comparaison de Code
✕ Java 8
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isDigit(c)) {
process(c);
}
}
✓ Java 9+
str.chars()
.filter(Character::isDigit)
.forEach(c -> process((char) c));
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Enchaînable
Utilisez filter, map, collect sur des streams de caractères.
Déclaratif
Décrivez ce qu'il faut faire, pas comment itérer.
Prêt pour Unicode
codePoints() gère correctement les emojis et les caractères supplémentaires.
Ancienne Approche
Boucle manuelle
Approche Moderne
Stream de chars()
Depuis JDK
9
Difficulté
Débutant
Support JDK
Caractères de String comme stream
Disponible
Disponible depuis JDK 8+ (amélioré en 9+)
Comment ça fonctionne
String.chars() retourne un IntStream de valeurs de caractères, permettant un traitement fonctionnel. Pour le support Unicode, codePoints() gère correctement les caractères supplémentaires.
Documentation Associée