Ho svolto questo quesito, ma ho dei dubbi se il procedimento sia giusto. Allego il testo e il codice di svolgimento da me eseguito. Grazie in anticipo
"Lettura di una sequenza di stringhe inserite manualmente dall’utente. Dopo aver digitato tutti
i caratteri che compongono la stringe che si vuole inserire, l’utente dovrà premere invio.
L’utente può inserire una sequenza lunga a piacere ed il programma dovrà continuare a
leggere le stringhe inserite dall’utente; per indicare che la sequenza è terminata, l’utente
premerà invio senza aver inserito alcuna stringa"
Questo l'ho svolto così, sicuro del fatto che inserite manualmente dall'utente voglia significare da tastiera.
"Memorizzazione della lista di stringhe in una struttura di tipo LinkedList o in un array."codice:import java.util.*; public class SequenzaStringhe { public static void main(String[] args) { String st; boolean number = true; Scanner in = new Scanner(System.in); while(number){ System.out.print("Scrivi una stringa: "); st=in.next(); //le stringhe da me inserite sono "animale", "parco", "balcone" } } }
Qui è dove sorgono i miei maggiori dubbi. Non so se posso direttamente memorizzare in un array o farlo in un ArrayList e poi convertirla in array successivamente.
Terzo punto del quesito: "Ordinamento della lista mediante l’algoritmo BubbleSort."codice:import java.util.*; public class MemoSequenza { public static void main(String[] args) { ArrayList v = new ArrayList(); v.add("animale"); v.add("parco"); v.add("balcone"); System.out.println("Elementi in v: " + v.size()); for(int i=0; i<v.size(); i++) System.out.println("Elemento " + i + ": " + v.get(i)); String[] r = (String[]) v.toArray(new String[0]); System.out.println(r[0] + " " + r[1] + " " + r[2]); } }
Infine ultimo punto che però non ricordo completamente, era quello di creare una seconda stringa che avesse gli stessi elementi della prima ma scritti al contrario. Ad esempio se nella prima stringa c'è "casa" nella seconda sarà "asac". Questo l'ho svolto così però vorrei sapere se c'è un metodo più semplice e meno lungo da usare nel caso.codice:public class bubble { public static void main (String[] args){ String[] r = {"animale","parco","balcone"}; System.out.println("Sequenza iniziale: " + r[0] + " " + r[1] + " " + r[2]); String tm = ""; for(int i=0; i<r.length; i++){ for(int j=0; j<r.length-1; j++){ if(r[j].compareTo(r[j+1]) > 0){ tm = r[j]; r[j] = r[j+1]; r[j+1] = tm; } } } System.out.println("Sequenza finale: " + r[0] + " " + r[1] + " " + r[2]); } }
codice:public class SecondaStringa { public static void main (String[] args){ String[] r = {"animale", "balcone", "parco"}; StringBuffer sb; StringBuffer sb1; StringBuffer sb2; char ch; sb = new StringBuffer(r[0]); sb1 = new StringBuffer(r[1]); sb2 = new StringBuffer(r[2]); for (int i=0; i<sb.length()/2; i++) { ch = sb.charAt(i); sb.setCharAt(i,sb.charAt(sb.length()-i-1)); sb.setCharAt(sb.length()-i-1,ch); } for (int i=0; i<sb1.length()/2; i++) { ch = sb1.charAt(i); sb1.setCharAt(i,sb1.charAt(sb1.length()-i-1)); sb1.setCharAt(sb1.length()-i-1,ch); } for (int i=0; i<sb2.length()/2; i++) { ch = sb2.charAt(i); sb2.setCharAt(i,sb2.charAt(sb2.length()-i-1)); sb2.setCharAt(sb2.length()-i-1,ch); } r[0] = sb.toString(); r[1] = sb1.toString(); r[2] = sb2.toString(); System.out.println(r[0] + " " + r[1] + " " + r[2]); } }

Rispondi quotando


