Artículos
Java

Invertir una frase en Java

19/Oct/2009

En el artículo Invertir una cadena con Java veíamos la forma en la cual podíamos dar la vuelta a una palabra. Lo mismo que podríamos hacer con el método .reverse() de StringBuilder.

Ahora vamos un paso más allá y vamos a ver como podemos invertir el orden de las palabras de una frase. Para ellos nos apoyaremos en una estructura de tipo pila. Puedes ver más información de qué es una pila en Crear una pila en Java.

La idea inicial es quedarnos con las palabras. Para poder acometer este primer paso tenemos que desmontar la frase en palabras. Para ellos nos vamos a apoyar en la clase StringTokenizer. La cual, mediante la simple instanciación de la misma, nos convierte la frase en un array de palabras.

String sTexto = "En un lugar de la mancha de cuyo nombre no quiero acordarme";
StringTokenizer frase = new StringTokenizer(sTexto);

Ahora creamos nuestra pila…

Stack pila = new Stack();

E iremos insertando cada uno de los elementos del StringTokenizer.

while (frase.hasMoreTokens()) {
  pila.push(frase.nextToken());
}

Nos apoyamos el el método .hasMoreTokens() de la clase StringTokenizer, para ver si hemos extraído todos los elementos de la misma. La extracción de elementos de la clase StringTokenizer lo haremos mediante .nextToken(), el cual extrae y pasa al siguiente elemento.

Para insertar los elementos en la pila nos apoyamos en el método push().

Una vez cargada la pila, procederemos a la extracción de los elementos de la misma. El hecho de que la pila sea una estructura LIFO (Last In First Out) hace que lo insertado quede en orden inverso. Es por ello que tendremos la frase invertida de una forma muy sencilla.

while (!pila.empty())
  System.out.print(pila.pop() + " ");

Cada elemento de la pila se extrae con el método .pop(). Un ejemplo muy útil de para qué utilizar una pila.

¿Se te ocurre otra forma de invertir una frase en Java?

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
3 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios