Ciao a tutti,
ho dei problemi con la lettura di un file di testo formattato. Il file txt è il seguente:
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
........
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).
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:
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);
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?
Grazie