Leggere parola per parola fino a fine riga in Java
Buondì, mi sto incasinando su questo problema:
devo leggere da input di tastiera una cosa del tipo "add 1 2 3 ..."
dove i ... indicano che non so a priori quanti numeri inserirà l'utente, quello che devo voglio fare è inserire ogni parola letta in un arraylist, quindi in posizione 0 avrò add, in posizione uno 1, e così via...
ho provato a usare la classe Scanner e i metodi Next() e NextLine, ma facendo:
while(!((input = tastiera.next()).equals("\n"))){
operazione.add(input);
}
quando poi vado a eseguire il codice, mi rimane in attesa di input all'infinito... certo, se usassi "fine" al posto di "\n" la cosa funziona, ma io vorrei evitarlo...come faccio a fargli capire che una volta che ho scritto "add 1 2 3 4 ..." tutto in un un'unica riga e premuto invio non deve più stare in attesa di altro input?
Re: Leggere parola per parola fino a fine riga in Java
Codice:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
while((line = in.readLine()) != null && !line.trim().isEmpty()) {
String parts[] = line.split(" ");
... fai qualcosa con i pezzi della riga ...
}
In questo modo, se digiti CTRL+Z (mi pare sia questo) oppure se immetti una stringa vuota o fatta di soli spazi esci dal ciclo.