
Originariamente inviata da
GrayFin
Si in effetti hai ragione, solo che non ricordo il testo preciso
EDIT:
codice:
String stringaDaInvertire ="animale";
........ //le altre stringhe
StringBuilder invertita =new StringBuilder();
for(int i=0; i<stringaDaInvertire.length(); i++){
invertita.insert(0, stringaDaInvertire.charAt(i));
}
........... //medesimo procedimento per le altre stringhe
System.out.println( invertita );
In questo modo però alla fine mi stampa, "ocrap atibib elamina" invece di "elamina atibib ocrap"
Beh... l'esempio che ti avevo postato io con lo StringBuilder era per una sola stringa... ovviamente, per ciascuna stringa lo StringBuilder va ricreato (o, meglio, svuotato)
Se vuoi avere tutte le stringhe invertite, ma stampate nell'ordine, devi avere uno StringBuilder dove andrai a fare ciascuna inversione e uno StringBuilder dove andrai, di volta in volta, a concatenare tutte le inversioni per il risultato finale:
codice:
String[] stringhe = {"Ciao", "Pippo", "Pluto"};
StringBuilder risultatoFinale = new StringBuilder();
StringBuilder invertita = new StringBuilder();
for(String s : stringhe) {
// Svuotiamo il buffer
invertita.setLength( 0 );
// Invertiamo la stringa
for(int i=0; i<s.length(); i++) {
invertita.insert(0, s.charAt(i));
}
// Aggiungo al risultato finale
risultatoFinale.append( invertita ).append(" ");
}
System.out.println( risultatoFinale );
Se, invece, ciascuna inversione la devi anche salvare, allora...
codice:
String[] stringhe = {"Ciao", "Pippo", "Pluto"};
ArrayList<String> risultatoFinale = new ArrayList<String>();
StringBuilder invertita = new StringBuilder();
for(String s : stringhe) {
// Svuotiamo il buffer
invertita.setLength( 0 );
// Invertiamo la stringa
for(int i=0; i<s.length(); i++) {
invertita.insert(0, s.charAt(i));
}
// Aggiungo al risultato finale
risultatoFinale.add( invertita.toString() );
}
for(String s : risultatoFinale) {
System.out.println( s );
}
Ciao.