Mi potreste spiegare la differenza nella classe scanner tra
String frase=in.next();
e
String frase=in.nextLine();
??
Mi potreste spiegare la differenza nella classe scanner tra
String frase=in.next();
e
String frase=in.nextLine();
??
ciao
di che stai parlando?![]()
Guarda mi sono appena iscritta a sto sito quindi faccio un po' casino ^^
stavo provando questo programma
import java.util.Scanner;
public class ScannerTest{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.print("Inserire altezza (valore decimale): ");
double alt=in.nextDouble();
System.out.print("Inserire eta' (valore intero): ");
int eta=in.nextInt();
System.out.print("Inserire nome (solo il primo nome) e cognome: ");
String nome= in.next();
String cognome=in.next();
System.out.print("Inserire stato e citta': ");
String stato= in.next();
String citta= in.nextLine();
System.out.println("Valori letti:");
System.out.println("Eta'=" + eta + " Altezza= "+alt);
System.out.println("Nome=" + nome + " Cognome= "+cognome);
System.out.println("Citta'= "+citta+ " ("+stato+")");
}
}
ho provato a far alcune modifiche,credevo k 'next' prendesse solo la prima parola della riga mentre 'nextLine' tutta la riga ma perchè se modifico il codice in questo modo invece,la stringa nome non solo non prende tutta la riga ma viene saltata??
String nome=in.nextLine();
/*String cognome=in.next(); */
(e ovviamente tolgo '+cognome' dalla print
mi pare sia solo Java,
sposto lì
![]()
in.next restituisce il prossimo token sulla riga, quindi prende un token alla volta;Originariamente inviato da Lailyna
Mi potreste spiegare la differenza nella classe scanner tra
String frase=in.next();
e
String frase=in.nextLine();
??
in.nextLine restituisce l'intera riga.
Ad esempio se fornisci in input la stringa "Ciao Laiylina":
per ottenere l'intera stringa usando next() dovresti chiamarlo esattamente due volte, mentre invece se vuoi ottenere l'intera stringa usando nextLine() ti basta chiamarlo una volta.
mi intrometto :P
il problema nasce dal fatto che provando a modificare il codice leggermente ha dei comportamenti strani:
cn questo codice
esegue la print, dopodichè non si mette in attesa ne per il nome ne per il cognome e passa subito alle istruzioni successivecodice:/* QUESTO è L'ORIGINALE System.out.print("Inserire nome (solo il primo nome) e cognome: "); String nome= in.next(); String cognome=in.next(); */ System.out.print("Inserire nome (solo il primo nome) e cognome: "); String nome= in.nextLine(); String cognome=in.next(); // istruzione successiva
stando alla teoria dovrebbe leggere una riga intera per il nome (metti caso che uno abbia 2 nomi) poi leggere un singolo cognome e poi passare alla lettura successiva...
noi stavamo cercando di capire PERCHé non fa così....
Niente,ho risolto, mi prendeva il \c
grazieeee =)