/* *************************************************************************
 * Tramite i metodi:
 *
 *    charAt(int)       ; Restituisce il carattere all'indice specificato.
 *                      ; 0 = primo carattere, lenght()-1 = ultimo.
 *    length()          ; Restituisce la lunghezza della stringa.
 *
 * Possiamo rovesciare una stringa immessa da tastiera.
 * Dovremo partire dall'ultimo carattere della stringa e stamparlo, poi
 * stampare il penultimo e cosi' via, fino al primo.
 * Si potrebbe fare con un ciclo FOR:
 *
 *  for(int i=(striga.length())-1 ; i>=0 ; i--)
 *        System.out.print(stringa.charAt(i));
 *
 * Il -1 serve perche' l'indice di charAt parte da zero, quindi l'ultimo
 * elemento sara' num_elementi-1 e non num_elementi.
 * Se si toglie il -1 si tenta di leggere un carattere dopo la fine della
 * stringa, e si genera l'eccezione StringIndexOutOfBoundsException.
 * Potete provare a togliere il -1 come verifica.
 ************************************************************************* */

import java.io.*;                // Include le funzioni I/O standard di base.


class Jlez3f {            // Da qua inizia la classe Jlez3f

 public static void main(String args[])  // Definiamo il metodo Main.
 {                                       // Inizio del main()

   System.out.println("\nInserisci la stringa da invertire:");

   String stringhina = leggiStr();       // Leggo una stinga da tastiera.

/* Ora stampiamo alla rovescia la stringa con un loop che stampa tutti i
 * caratteri, partendo dall'ultimo, all'indietro fino al primo.*/

   for(int i=(stringhina.length())-1 ; i>=0 ; i--)
         System.out.print(stringhina.charAt(i));

   System.out.print("\n");                  // Andiamo a capo dopo il loop

 }               // Fine del metodo principale Main()


/* -------------------------------------------------------------------------
 * Definiamo un metodo chiamato leggiStr(), che in entrata non ha
 * parametri, e in uscita restituisce una stringa immessa da tastiera.
 *    String leggiInt()
 * ----------------------------------------------------------------------- */

 public static String leggiStr()
 {
    try {
      DataInputStream leggilo = new DataInputStream(System.in);
      String stringa = leggilo.readLine();     // dichiaro e leggo stringa.
      return stringa;
    }
    catch (Exception e) {
      System.out.println("Errore: " + e + " nella lettura da tastiera");
      System.exit(0);
      return("errore");  // Questo return serve solo perche' il metodo
                         // abbia un int di ritorno anche in caso di errore
    }
 }               // Fine di "String leggiStr()"


}            // Fine della classe Jlez3f