Java Stream 8, cada sexta palabra imprimir en nueva línea
public class Histograma {
public static void main(String[] args) throws IOException {
Stream
ArrayList
.map(palabra -> palabra.split(“\.|\s+|,”)).flatMap(Arrays::stream)
.filter(palabra -> palabra.length() != 0)
.collect(Collectors.toList());
int i = 1;
for(String palabra : lista) {
System.out.print(palabra + “(” + palabra.length() + “) “);
if(i%5 == 0) {
System.out.println();
}
i++;
}
}
}
Ahora todos los resultados están en una línea.
¿Cómo puedo hacer lógica en este flujo de Java 8 para poner cada 5 palabras del bucle forEach en una nueva línea (System.out.println)?
Cada sexta palabra se imprime en una nueva línea.
davy.ai
java
public class Histograma {
public static void main(String[] args) throws IOException {
Stream<string> stream = Files.lines(Paths.get("words.txt"));
ArrayList<string> lista = (ArrayList<string>) stream
.map(w -> w.split("\\.|\\s+|,")).flatMap(Arrays::stream)
.filter(x -> x.length() != 0)
.collect(Collectors.toList());
AtomicInteger contador = new AtomicInteger(0);
lista.forEach(s -> {
System.out.print(s + "(" + s.length() + ") ");
if (contador.incrementAndGet() % 6 == 0) {
System.out.println();
}
});
}
}