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

Rispondi quotando