CE L'HO FATTA!!! Finalmente mi sembra funzioni a dovere!! Ci ho sbattuto un po' la testa ma è stato meglio così!
Ora mi dareste un giudizio sul codice (la traccia da svolgere è all'inizio di questo topic)? Si poteva fare meglio? E come? Grazie!
codice:import java.io.*; import java.util.*; class GestVoli { // definisco un arraylist di tipo definito dalla classe Voli private static ArrayList<Voli> listVoli= new ArrayList<Voli>(); private static boolean caricaVoli(String nomeFile) { try { //costruisco l'oggetto scanner in cui confluiranno i dati del file Scanner scanFile=new Scanner(new File(nomeFile)); int i=1; while (scanFile.hasNext()) { try { String idVolo=scanFile.next(); String cittPart=scanFile.next(); String aPart=scanFile.next(); String cittDest=scanFile.next(); String aDest=scanFile.next(); String compagnia=scanFile.next(); String orPart=scanFile.next(); String orArr=scanFile.next(); listVoli.add(new Voli(idVolo, cittPart, aPart, cittDest, aDest, compagnia, orPart, orArr)); i++; } catch (IllegalArgumentException e) { System.out.println("La riga n. " + i + " non ha i parametri giusti"); } } } catch (FileNotFoundException e) { System.out.println("Il file " + nomeFile + " non esiste o non e' nel percorso giusto!"); } if (listVoli.size()>0) return true; else return false; } // inizio metodo che interagisce con l'utente private static void startInterfaccia() { // stabilisco una variabile di controllo per verificare se l'utente ha annullato l'operazione boolean utenteAnnulla=false; do { Scanner utenteInput=new Scanner(System.in); System.out.println("Quale volo vuoi cercare? (premi q per terminare)"); String cittaCercata=utenteInput.nextLine(); boolean trovato=false; if (!cittaCercata.equals("q")) { for (int i=0; i<listVoli.size(); i++) { Voli thisVolo=listVoli.get(i); if (cittaCercata != null && thisVolo.getCittPart().equals(cittaCercata)) { System.out.println(listVoli.get(i)); trovato=true; } if (cittaCercata != null && thisVolo.getCittDest().equals(cittaCercata)) { System.out.println(listVoli.get(i)); trovato=true; } } if (trovato=false) System.out.println("Non ci sono voli per quella citta'!"); } else utenteAnnulla=true; } while (!utenteAnnulla); } public static void main (String[] args) { Scanner scan=new Scanner(System.in); System.out.println("Inserisci il nome del file in cui cercare: "); String nomeFile=scan.nextLine(); boolean fileCaricato=GestVoli.caricaVoli(nomeFile); if (fileCaricato==true) GestVoli.startInterfaccia(); else System.out.println("Non sono stati aggiunti i dati nel file!"); } }

!!! Finalmente mi sembra funzioni a dovere!! Ci ho sbattuto un po' la testa ma è stato meglio così!
Rispondi quotando