String.lines() para divisão de linhas
Use String.lines() para dividir texto em um stream de linhas sem o custo de regex.
Comparação de Código
✕ Java 8
String text = "one\ntwo\nthree";
String[] lines = text.split("\n");
for (String line : lines) {
System.out.println(line);
}
✓ Java 11+
String text = "one\ntwo\nthree"; text.lines().forEach(IO::println);
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Streaming preguiçoso
As linhas são produzidas sob demanda, não todas de uma vez como split().
Quebras de linha universais
Lida com \n, \r e \r\n automaticamente sem regex.
Integração com Streams
Retorna um Stream para uso direto com filter, map e collect.
Abordagem Antiga
split("\\n")
Abordagem Moderna
lines()
Desde o JDK
11
Dificuldade
Iniciante
Suporte JDK
String.lines() para divisão de linhas
Disponível
Disponível desde o JDK 11 (setembro de 2018).
Como funciona
String.lines() retorna um Stream<String> de linhas divididas por \n, \r ou \r\n. É mais eficiente e preguiçoso que split(), evita compilação de regex e se integra naturalmente com a API de Streams para processamento adicional.
Documentação Relacionada