Caracteres de String como stream
Processe caracteres de uma string como um pipeline de stream.
Comparação de Código
✕ 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));
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Encadeável
Use filter, map e collect em streams de caracteres.
Declarativo
Descreva o que fazer, não como iterar.
Preparado para Unicode
codePoints() lida corretamente com emojis e caracteres suplementares.
Abordagem Antiga
Loop manual
Abordagem Moderna
Stream com chars()
Desde o JDK
9
Dificuldade
Iniciante
Suporte JDK
Caracteres de String como stream
Disponível
Disponível desde o JDK 8+ (aprimorado no 9+)
Como funciona
String.chars() retorna um IntStream dos valores dos caracteres, permitindo processamento funcional. Para suporte a Unicode, codePoints() lida corretamente com caracteres suplementares.
Documentação Relacionada