Este código que mostraremos a continuación muestra cómo cambia el orden de las palabras en un string
Primero rompe el string en palabras usando StringTokenizer y cambia el orden de ellas usando la propiedad LIFO de pila .

import java.util.*;

public class demo {

private static void pcipal() {

String cadena = “Este es un ejemplo”;
Stack pila = new Stack();

// rompemos el string en palabras usando StringTokenizer
StringTokenizer tst = new StringTokenizer(cadena);

while (tst.hasMoreTokens()) {
pila.push(tst.nextElement());
}

System.out.println(“String de prueba:” + cadena);

System.out.print(“al revés: “);

// sacamos las palabras de la pila
while(!pila.empty()) {
System.out.print(pila.pop());
System.out.print(” “);
}

System.out.println(“\n”);
}

public static void main(String[] args) {
pcipal();
}

}
Salida en pantalla
String de prueba: este es un ejemplo
al revés: ejemplo un es este