Zuerst habe ich einen Boolean erstellt und dann auf true gesetzt, um den ersten Durchlauf zu aktivieren ... dann würden nachfolgende Läufe auf der Benutzereingabe basieren.Wie man eine Eingabezeile verschiedener primitiver Typen abruft
boolean emptyLine = true;
String name; int quantity; double price;
Scanner scan = new Scanner(System.in);
while(emptyLine != false) //repeatedly request user input if input is not empty
{
//ask the user for the quantity of items being purchased.
System.out.println("Enter name of item: Enter quantity of item purchased: Enter price of item being purchased: ");
input = scan.nextLine(); //should read the line of input
item = //name of item from the line of input.
quantity = scan.nextInt(); //should get the quantity from the line of input
price = scan.nextDouble(); //get the price from the line of input
if(input.length() >= 0)
{
emptyLine = true;
}
else
{
emptyLine = false;
}
}
Ich versuche, einen Code zu schreiben, um zu überprüfen, ob die Benutzereingabe leer ist oder nicht. Wenn die Benutzereingabe leer ist, wird der Benutzer aufgefordert, eine gültige Eingabe einzugeben oder zu beenden.
Wenn der Benutzer z. B. ein Leerzeichen eingibt, möchte ich, dass mein Programm dies akzeptiert. Wenn der Benutzer jedoch die EINGABETASTE drückt, sollte er abgelehnt werden.
'item = quantity = scan.nextInt()' ist es absichtlich? PS: 'input.length()> = 0 'gibt Ihnen den booleschen Wert, den Sie wollen, kein Bedarf nach einem if-else – AxelH
Da Sie die gesamte Zeile in' input' lesen, sollten Sie diese Zeichenfolge analysieren, z. mit einem Tokenizer, regulären Ausdruck usw. – Thomas
Sie sollten sich wirklich 'Scanner # hasNextLine()' anschauen. Außerdem werden Sie wahrscheinlich mit [dieser] (http://stackoverflow.com/questions/13102045/scanner-is-skipping-nextline-after-using-next-nextint-or-other-nextfoo) Ausgabe – TheLostMind