Cómo invertir una cadena usando Java

Una cadena se puede convertir a una matriz de caracteres y la matriz se invierte en bucle desde el final hasta el comienzo.

Sintaxis:

StringBuilder toReturn = new StringBuilder();
	
	char[] tab = input.toCharArray();
	for( int i = tab.length-1 ; i >= 0 ; i--){
	    toReturn.append( tab[i] );	
	}
	
	return toReturn.toString();

Ejemplo:

Este ejemplo crea un método llamado reverse que convierte un String en un CharArray. Hace un bucle en todos los caracteres desde el último hasta el primero y lo agrega a un StringBuilder . La salida se devuelve.
Este método se llama con 2 cadenas de muestra. El primer método inverso se llama dos veces con la salida de la primera llamada que muestra que la salida es la misma que la entrada.

public class StringReverse {

    public static String reverse(String input){
	StringBuilder sb = new StringBuilder();
	
	char[] tab = input.toCharArray();
	for( int i = tab.length-1 ; i >= 0 ; i--){
	    sb.append( tab[i] );	
	}
	
	return sb.toString();
    }
    
    public static void main(String[] argv) {

	String test = "This is a test";

	// Call reverse 
	String output = reverse( test );
	
	System.out.println( test + " => " + output );
	
	// Same test calling reverse twice
	System.out.println( test + " => " + reverse( test ) + " => " + reverse(reverse( test )) );

	// With Numbers
	test = "0123456789";

	System.out.println( test + " => " + reverse( test ) );

    }

}

El resultado será:

This is a test => tset a si sihT
This is a test => tset a si sihT => This is a test
0123456789 => 9876543210

Referencias

Java String