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!");
}
}