String como Stream en Java

20/Mar/2016 Java , Deja un comentario

Desde que aparecieron los Stream en Java 8 tenemos la capacidad de trabajar con muchos elementos como si fueran Stream. Esto se utiliza principalmente en Java para las Colecciones, pero podemos aplicarlo a otros elementos como Ficheros e incluso sobre una cadena de texto.

Para poder tratar un String como Stream en Java necesitamos invocar al método .chars(). Dicho método nos devolverá el Stream desde una cadena de texto.

  1. String sCadena = "Esto es una cadena de texto";
  2. sCadena.chars();

Una vez que tenemos el Stream podemos empezar a realizar operaciones sobre él. La más sencilla es volcar el contenido de la cadena de texto. Para ello utilizaremos la operación .forEach()

  1. sCadena.chars()
  2. .forEach(c -> System.out.print(Character.toString((char) c)));

Vemos que el método .forEach() realiza manipulación de carácter a carácter. De esa forma habremos volcado el contenido por pantalla.

Otra cosa que podemos hacer es filtrar algunos caracteres. Para ello tenemos el método .filter(). Por ejemplo podemos filtrar aquellos caracteres que sean 'a'.

  1. sCadena.chars()
  2. .filter(c -> c!='a')
  3. .forEach(c -> System.out.print(Character.toString((char) c)));

Y por último podríamos procesar el Stream de forma paralela. En este caso tenemos el método .parallel().

  1. sCadena.chars()
  2. .parallel()
  3. .forEach(c -> System.out.print(Character.toString((char) c)));
  4.  

Si bien, el procesamiento en paralelo, no nos va a asegurar la secuencialidad en el tratamiento de los caracteres de la cadena. Devolviendo en su salida por consola una secuencia como esta:

na ddeaexto teo estE s nacu

Cómo podéis comprobar, las posibilidades con los Stream y una sencilla cadena de texto son muy amplias. Ahora que ya sabes manejar un String como Stream en Java, solo te quedar probar a ti.

Vídeos sobre Java


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*