Sto provando a risolvere questo esercizio con il codice che vi propongo sotto, ma non credo sia corretto, avete suggerimenti?
ESERCIZIO:
Si consideri la classe:
public class Capitolo11
{
public static void main (String[] args){
String b= "Tanto va la gatta al lardo che ci lascia
lo zampino!";
inverso(b);
}
Scrivere il metodo void inverso(String s) che, data una stringa in ingresso, crea un ArrayList contenente tutti i caratteri della stringa e, tramite un foreach, li stampa al contrario restituendo un output come il seguente:
“!onipmaz ol aicsal ic ehc odral la attag al av tonat”
2) Ripetere l’esercizio precedente utilizzando un Iterator.
SOLUZIONE 1
public class Main {
public static void main(String a[]){
ListIterator<String> s1 = null;
List<String> s = new ArrayList<String>();
s.add("t");
s.add("a");
s.add("n");
s.add("t");
s.add("o");
s.add(" ");
s.add("v");
s.add("a");
//etc..
//iterator
s1=s.listIterator();
System.out.println("normale");
while(s1.hasNext()){
System.out.println(s1.next());
}
System.out.println("inverso");
while(s1.hasPrevious()){
System.out.println(s1.previous());
}
}
}
SOLUZIONE 2
public class Main {
public static void main(String a[]){
ListIterator<String> s1 = null;
List<String> s = new ArrayList<String>();
s.add("t");
s.add("a");
s.add("n");
s.add("t");
s.add("o");
s.add(" ");
s.add("v");
// //iterator
// s1=s.listIterator();
//
// System.out.println("normale");
// while(s1.hasNext()){
// System.out.println(s1.next());
// }
// System.out.println("inverso");
// while(s1.hasPrevious()){
// System.out.println(s1.previous());
//
// }
for(String obj:s)
System.out.println(obj);
}
}
SOLUZIONE 1B
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String s = "Tanto va la gatta al lardo che ci lascia lo zampino!";
char s1;
for (int i = s.length()-1;i>=0; i--){
s1= s.charAt(i);
System.out.print(s1);
}
}
}