Ciao a tutti,
ho dei problemi con la lettura di un file di testo formattato. Il file txt è il seguente:
Da questo file dovrei ricavarne in seguenza un ipotetico ID (APERT_1, APERT_2, ecc), il nome di una classe (Porta, Finestra, ecc), la descrizione (Porta del porto, passaggio, ecc), e altri due ID (LOC_1 LOC_2, LOC_3 LOC_4, ecc).codice:....... ....... ...... APERTURE APERT_1 Porta Porta del porto LOC_1 LOC_2 APERT_2 Finestra Passaggio LOC_3 LOC_4 APERT_6 Porta Porta della House of Mojo LOC_1 LOC_5 APERT_3 Botola Un passaggio segreto multidimensionale LOC_5 LOC_6 # chiusa per default, aperta da un bottone o una leva, Dalla House of Mojo al palazzo del governatore PERSONAGGI ........
Fin quando si tratta di leggere il primo ID e il nome della classe va tutto bene, quando poi arrivo a leggere la descrizione non riesco a prenderla tutta. Mi spiego, questo è il codice che ho fatto:
Vorrei che la variabile name, dopo aver fatto il name=in.next() mi contenesse la descrizione completa (es. Porta del porto) ma invece contiene solo la prima parola (Porta), attribuendo quindi alla variabile 'location' il valore 'del'. Esiste un metodo della classe Scanner con cui posso risolvere?codice:do{ if(ID.compareTo("PERSONAGGI")!=0){ ID=in.next(); nameClass=in.next(); name=in.next(); location=in.next(); destination=in.nextLine(); if(destination.contains("#")){ char[] newDestination=new char[destination.length()]; int i=0; while(i<destination.length() && destination.charAt(i)!='#') { if(destination.charAt(i)!='\t') newDestination[i]=destination.charAt(i); i++; } destination=new String(newDestination); } System.out.println(ID + nameClass + name + location + destination); } }while(ID.compareTo("PERSONAGGI")!=0);
Grazie

Rispondi quotando