Scanner liest nur das erste Wort anstelle von der Linie
In meinem aktuellen Programm eine Methode fordert den Benutzer zur Eingabe die Beschreibung eines Produkts als String
Eingang. Allerdings, wenn ich später versucht, diese Informationen auszudrucken, wird nur das erste Wort des String
zeigt. Was könnte die Ursache sein? Meine Methode ist wie folgt:
void setDescription(Product aProduct) {
Scanner input = new Scanner(System.in);
System.out.print("Describe the product: ");
String productDescription = input.next();
aProduct.description = productDescription;
}
Also, wenn die Eingabe des Benutzers ist "Sparkling soda mit orange-Geschmack", der System.out.print
liefert nur "Sparkling".
Jede Hilfe wird sehr geschätzt!
InformationsquelleAutor Kristian | 2011-10-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersetzen
next()
mitnextLine - ()
:Genial. Vielen Dank! Das hat geklappt 🙂
InformationsquelleAutor Tim Cooper
Verwenden
input.nextLine();
stattinput.next();
InformationsquelleAutor Eng.Fouad
Den javadocs für Scanner Ihre Frage zu beantworten
Könnten Sie ändern die Standard-Leerraum-Muster, die der Scanner verwenden von etwas wie
InformationsquelleAutor ptomli
Eingang.die next () - nimmt in den ersten whitsepace getrennte Wort des input-string. Also von design, dass es das tut was du beschrieben hast. Versuchen
input.nextLine()
.InformationsquelleAutor Cam
Javadoc die Rettung :
nextLine
ist wahrscheinlich die Methode, die Sie verwenden sollten.InformationsquelleAutor JB Nizet