Utilizzando lo scanner per ottenere la stampa di ingresso non come previsto
-
18-09-2019 - |
Domanda
Questo è per un mio amico che sta avendo problemi con Java per la scuola.
che so po 'di programmazione, ma non Java.
Scanner kbReader = new Scanner(System.in);
System.out.print("Name of item: ");
String name = kbReader.next();
System.out.println("Original price of item: $");
double price = kbReader.nextDouble();
Uscite:
Name of item: Coat
Original price of item: $
10
Perché è l'ingresso per il "Prezzo originale di prodotto: $" nella riga successiva?
Stavo indovinando era perché sono andato da String
a double
, ma non riesco a pensare ad un modo diverso di farlo?
Soluzione
Se si utilizza
System.out.println()
Java metterà un ritorno a capo dopo l'uscita, se si utilizza
System.out.print()
Java non metterà un ritorno a capo dopo l'uscita.
Altri suggerimenti
Non hai postato l'intero codice. Ma, il cambiamento
System.out.println("Original price of item: $");
a
System.out.print("Original price of item: $");
e che sarà ok.
E 'perché il metodo System.out.println () aggiunge un carattere di nuova riga per tutto ciò che viene stampato. Se si desidera che la richiesta per l'ingresso di rimanere sulla stessa linea, utilizzare System.out.print () (si noti che è il metodo di stampa (), non println ()) che fa non aggiungere una nuova riga alla quello che manda a fuori standard. System.out è un oggetto java.io.PrintStream statico. Potete leggere il Javadocs su di esso per aiutare a qui: http://java.sun.com/javase/6/docs/api/java/io/PrintStream.html
perché hai usato println invece di stampa. Il 'ln' aggiunge una nuova riga.