Ciao a tutti,
ho un problema. Sto facendo un programma che simula un distributore di dvd. Il file di testo da cui leggo i dati è così strutturato:
La_nona_porta Roman_Polanski 2347483932032 10 15
che significa: titolo regista codice dvdDisponibili e dvdTotali
Ovvero: il titolo è separato da degli underscore!
Nel programma devo inserire da tastiera il nome del film che voglio noleggiare e aggiornare il numero di dvd disponibili(e fin qui l'ho fatto e funziona). Ora però devo far si che la ricerca sia effettuabile anche con stringhe parziali per esempio "nona_porta" o "La_porta" e qualora più dvd corrispondessero al criterio di ricerca, visualizzare un elenco numerato di tutti i risultati e consentire di sceglierne uno dall'elenco!
Qualcuno sa aiutarmi?
Vi metto qui parti di codice che ho già fatto:
codice:
public void load() throws IOException{
Scanner sc=new Scanner(new File(file));
StringTokenizer st;
String[] tit;
String[] reg;
for(int k=0; k<numero_righe; k++){
st=new StringTokenizer(sc.nextLine(), " ");
String titolo= st.nextToken();
d[k]=new Dvd(titolo);
StringTokenizer st2=new StringTokenizer(titolo,"_");
int count2=st2.countTokens(); //
for(int i=0;i<count2;i++){
tit=new String[count2];
tit[i]=st2.nextToken();
}
String regista=st.nextToken();
d[k].setRegista(regista);
long codice=Long.parseLong(st.nextToken());
d[k].setCodice(codice);
int disponibili=Integer.parseInt(st.nextToken());
d[k].setDisponibili(disponibili);
int totali=Integer.parseInt(st.nextToken());
d[k].setTotali(totali);
}
//System.out.println("Dvd caricati correttamente!");
//System.out.println();
}
public void noleggio(String titolo) {
for (int k=0;k<numero_righe;k++){
if((d[k].getTitolo().split("_")).equals(titolo)){
System.out.println("Corrispondenza trovata");
int disponibili=d[k].getDisponibili();
System.out.println("I dvd disponibili di questo film sono: "+disponibili);
if(d[k].getDisponibili()>0){
d[k].setDisponibili(disponibili-1);
System.out.println("Hai noleggiato '"+d[k].getTitolo()+"'. I dvd ora disponibili del film sono: "+d[k].getDisponibili());
}else{
System.out.println("Non puoi noleggiare un altro dvd con questo titolo perchè sono stati tutti noleggiati!");
}
}
}
}