Estava praticando sobre Streams e estava tentando filtrar um arquivo de texto por palavras com um certo tamanho utilizando somente labda etc. Segue o código:
package br.com.alura.streams.meuteste;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class StreamTesteREVER {
public static void main(String args[]) throws Exception {
Stream<String> lyric = Files.lines(Paths.get("D:\\Alura\\Eclipse\\eclipse-workspace\\Java-8_New_Stuff\\src\\soLongFeatZada.txt"));
lyric.map(line -> line.split(" "))
.filter(filterbyLength -> filterbyLength.length > 5)
.forEach(word -> System.out.println(word));
lyric.close();
}
}
O forEach retorna hashes.
Sem o ".map" o filter funciona mas como o lyric é uma linha, o filtro acaba tendo como base a contagem de toda a linha. Tentei aplicar a regra split e develver uma Stream de palavras individuais mas não achei um modo de resolver isso.
Se puderem dar uma olhada agradeço!