Heim >Java >javaLernprogramm >Scanner-Doppelwert: InputMismatchException – Warum tritt es auf und wie kann es vermieden werden?

Scanner-Doppelwert: InputMismatchException – Warum tritt es auf und wie kann es vermieden werden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-22 20:56:11508Durchsuche

Scanner Double Value: InputMismatchException - Why Does It Occur and How Can It Be Avoided?

Scanner-Doppelwertausnahme: InputMismatchException

Problemeinführung:

Bei Verwendung der Scanner-Klasse Um doppelte Werte aus der Konsole zu lesen, kann ein Benutzer auf die InputMismatchException stoßen. Dieser Fehler tritt auf, wenn die Eingabe nicht mit dem erwarteten Datentyp übereinstimmt, in diesem Fall einem Double.

Fragen:

  • Warum tritt diese Ausnahme auf, wenn Doppelte Werte mit dem Scanner lesen?
  • Wie kann diese Ausnahme sein? vermieden?

Antworten:

1. Warum tritt die Ausnahme auf?

Die InputMismatchException wird ausgelöst, weil das Standardgebietsschema des Scanners nicht für die Verwendung eines Punkts (.) als Dezimaltrennzeichen konfiguriert ist. Standardmäßig verwenden viele Gebietsschemas ein Komma (,) als Dezimaltrennzeichen. Es wird jedoch erwartet, dass Gleitkommazahlen in Java einen Punkt als Dezimaltrennzeichen verwenden. Wenn der Scanner versucht, einen Double-Wert aus einer Eingabe zu lesen, die ein Komma als Dezimaltrennzeichen verwendet, interpretiert er ihn als Ganzzahl, was zur InputMismatchException führt.

2. So umgehen Sie die Ausnahme:

Um die InputMismatchException zu vermeiden, können die folgenden Schritte unternommen werden:

  • Geben Sie das Gebietsschema an: Legen Sie die Scanner explizit fest Lokalisierung auf eine, die einen Punkt als Dezimaltrennzeichen verwendet. Dies kann mit der useLocale-Methode erfolgen:
Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
  • Reguläre Ausdrücke verwenden: Anstatt die nextDouble-Methode zu verwenden, verwenden Sie reguläre Ausdrücke, um doppelte Werte zu validieren und zu extrahieren aus Benutzereingaben. Dieser Ansatz ermöglicht eine bessere Kontrolle über das Eingabeformat.

Das obige ist der detaillierte Inhalt vonScanner-Doppelwert: InputMismatchException – Warum tritt es auf und wie kann es vermieden werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn