Erkennung leerer Eingabe (JAVA)
Also mein Programm hat zu zählen, die Höhe der Veränderung einer person, die in der scanner-Methode, die jedoch zwei Fehler muss pop-out, wenn a) die Eingabe ist keine Zahl und b) wenn der input fehlt. Ich habe eine Menge ärger mit der letzteren.
import java.util.InputMismatchException;
import java.util.Scanner;
public class MakingChange
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in); //Reading from System.in
System.out.print("How much money do you have: ");
double amountInDollars = 0;
try {
amountInDollars = input.nextDouble();
} catch (InputMismatchException e) {
System.out.println("INVALID"); //print invalid
return;
}
if (input.equals(" ")){
System.out.println("INVALID");
return;
}
int amountInPennies = (int) Math.round(amountInDollars * 100);
amountInPennies = (int) (Math.round(amountInPennies / 5.0) * 5);
//toonies
int numberofToonies = (int)(amountInPennies / 200.00);
amountInPennies = amountInPennies % 200;
//loonies
int numberofLoonies = (int) (amountInPennies / 100.00);
amountInPennies = amountInPennies % 100;
//quarters
int numberofQuarters = (int)(amountInPennies / 25.00);
amountInPennies = amountInPennies % 25;
//dimes
int numberofDimes = (int)(amountInPennies / 10.00);
amountInPennies = amountInPennies % 10;
//nickels
int numberofNickels = (int)(amountInPennies / 5.00);
System.out.println("toonies:" + numberofToonies + ";" + " loonies:" + numberofLoonies + ";" + " quarters:" + numberofQuarters + ";" + " dimes:" + numberofDimes + ";" + " nickels:" + numberofNickels);
}
}
Also die erwartet werden sollte "UNGÜLTIG" aber derzeit sind alle zurückgibt, ist ein leerer Platz.
Danke!
- Mögliche Duplikate von Leere scanner-Eingabe - java
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie folgenden code habe ich Kommentare Hinzugefügt.
versuchen, diese und sollte gut funktionieren für Sie.
Lassen Sie mich wissen, wenn es klappt.
Für das Geld besser verwenden Sie
BigDecimal
(glauben Sie mir oder glauben Sie mir nicht). Sie können fernerBigDecimal
Funktionen, um Ihre Berechnungen.https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html
http://www.opentaps.org/docs/index.php/How_to_Use_Java_BigDecimal:_A_Tutorial
http://www.tutorialspoint.com/java/math/java_math_bigdecimal.htm
scanner.hasNext(Pattern)
// Reguläre AusdrückeSoweit ich sehe, sind Sie testen, ob Ihre scanner-Objekt entspricht einem string-literal, das macht überhaupt keinen Sinn.
Erste, erhalten Sie eine Zeichenfolge, mit der scanner -
nextXXX
- Methoden.Dann prüfen, ob der string leer ist, wird durch die Verwendung
someString.equals("")
oder sogar besser, meiner Meinung nach,someString.isEmpty()
.