/* Auteur: Nicolas JANEY */ /* nicolas.janey@univ-fcomte.fr */ /* Fevrier 2005 */ import java.io.*; public class InversionTableauCaracteres { static BufferedReader flux = new BufferedReader(new InputStreamReader(System.in)); /* Fonction de creation d'un tableau de caracteres */ /* initialise avec tous les caracteres */ /* d'une chaine de caracteres */ /* s : chaine de caracteres a traiter */ /* Resultat fonction : tableau de caractere */ public static char [] initTableau(String s) { int n = s.length(); char [] t = new char[n]; for ( int i = 0 ; i < n ; i++ ) t[i] = s.charAt(i); return(t); } /* Fonction de creation d'une chaine de caracteres */ /* initialisee avec tous les caracteres */ /* d'une tableau de caracteres */ /* t : tableau de caractere a traiter */ /* Resultat fonction : chaine de caracteres */ public static String chaine(char [] t) { String s = ""; for ( int i = 0 ; i < t.length ; i++ ) s = s+t[i]; return(s); } /* Fonction d'affichage d'un tableau de caracteres */ /* t : tableau de caractere a afficher */ public static void afficheTableau(char [] t) { for ( int i = 0 ; i < t.length ; i++ ) System.out.print(t[i]); } /* Fonction d'inversion des caracteres d'un tableau */ /* de caractere */ /* t : tableau de caractere a inverser */ public static void inversion(char [] t) { /* Calcul de la taille du tableau de caractere */ int l = t.length; /* (l sur 2) inversions doivent etre realisee */ for ( int i = 0 ; i < l/2 ; i++ ) { /* On inverse les caracteres d'indice i et l-1-i */ /* Une variable auxiliaire du meme type que les deux */ /* variables a inverser doit etre utilisee */ char c = t[i]; t[i] = t[l-1-i]; t[l-1-i] = c; } } /* Fonction principale */ public static void main(String [] args) throws IOException { /* Creation d'un tableau de caractere a partir */ /* de la chaine de caracteres "ABCDEFGHI" */ /* Inversion de ce tableau et affichage du resultat */ { char [] mot = initTableau("ABCDEFGHI"); System.out.println(chaine(mot)); inversion(mot); System.out.println(chaine(mot)); } /* Au sein d'une boucle infinie */ /* Lecture au clavier d'une chaine de caracteres */ /* Creation d'un tableau de caractere a partir */ /* de cette chaine de caracteres */ /* Inversion de ce tableau et affichage du resultat */ while ( true ) { System.out.print("Quelle est la chaine a traiter? : "); String s = flux.readLine(); char [] mot = initTableau(s); System.out.print(chaine(mot)); inversion(mot); System.out.println(" -> "+chaine(mot)); } } }