¿Cómo funciona este código? JAVA

Acabo de mirar este código y me está costando entenderlo, voy a tener que desenmarañarlo con papel y lápiz.

Imagen

En texto plano para copiar y pegar
import java.util.Scanner;

public class Moverletra {

   public static void main(String[] args) {

      String cadena = "";
      String cadenaAuxiliar = "";
      int contador = 1;

      Scanner teclado = new Scanner(System.in);

      System.out.println("Introduce la cadena");
      cadena = teclado.nextLine();
      cadena = cadena.toUpperCase();

      int longitud = cadena.length() - 1;

      System.out.print(cadena);

      for (int c = longitud; c >= 0; c--, contador++) {
         cadenaAuxiliar = "";
         int contador2 = cadena.length() - 1;

         for (int s = 0; s < contador; s++, contador2--) {
            cadenaAuxiliar = cadena.charAt(contador2) + cadenaAuxiliar;

         }
         
         for (int s = 0; s < c; s++, contador2--) {
            cadenaAuxiliar = cadenaAuxiliar + cadena.charAt(s);
         }
         
         System.out.print("-" + cadenaAuxiliar);
      }
   }
}


EDITO:

Solucionado en el foro expruebas:

@amchacon

Imagen

    import java.util.Scanner;

    public class MoverLetra {

       public static void main(String args[]) {
          Scanner teclado = new Scanner(System.in);

          String cadena = teclado.nextLine();

          for (int i = cadena.length()-1;i >= 0;i--)
          {
             for (int j = (i+1)%cadena.length();j != i;j = (j+1)%cadena.length())
             {
                System.out.print(cadena.charAt(j));
             }

             System.out.println(cadena.charAt(i));
          }

          System.out.println(cadena);
       }
    }


@rukario23

Imagen
Pues creo que hace que un texto gire, ej:

ahol
laho
olah
hola

....
Las letras en naranja son las que genera el segundo FOR y las letras en negro las genera el tercer FOR.

Esto se hubiese conseguido mas facilmente a mi parecer con metodos para cortar cadenas.
1 respuesta