Heim > Java > javaLernprogramm > Warum löst „Scanner.nextDouble()' eine „InputMismatchException' aus und wie kann ich das beheben?

Warum löst „Scanner.nextDouble()' eine „InputMismatchException' aus und wie kann ich das beheben?

Linda Hamilton
Freigeben: 2024-12-11 05:31:13
Original
332 Leute haben es durchsucht

Why Does `Scanner.nextDouble()` Throw an `InputMismatchException`, and How Can I Fix It?

Scanner double Value InputMismatchException

Java-Programmierer stoßen häufig auf die InputMismatchException, wenn sie versuchen, doppelte Werte mit der Methode nextDouble() zu scannen. Diese Ausnahme signalisiert eine Diskrepanz zwischen dem erwarteten Datenformat und der tatsächlich bereitgestellten Eingabe.

Warum es passiert

Die InputMismatchException tritt auf, wenn die Eingabe nicht dem erwarteten numerischen Wert entspricht Format. Im angegebenen Codeausschnitt ist der Scanner nicht explizit mit einem Gebietsschema konfiguriert. Dies führt dazu, dass das Standardgebietsschema des Systems verwendet wird, das unterschiedliche Dezimaltrennzeichen haben kann (z. B. „“, anstelle von „.“ in einigen europäischen Ländern). Wenn der Scanner die Eingabe interpretiert, erwartet er eine durch Kommas getrennte Dezimalzahl, trifft jedoch stattdessen auf einen Punkt (.).

So umgehen Sie das Problem

Um dieses Problem zu beheben Bei diesem Problem können Sie das Gebietsschema des Scanners explizit auf eines festlegen, das das erwartete Dezimaltrennzeichen verwendet. Dadurch wird sichergestellt, dass der Scanner die Eingabe basierend auf dem angegebenen Gebietsschema korrekt interpretiert.

Lösung

Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
Nach dem Login kopieren

Durch die Verwendung von Locale.US wird der Scanner für die Verwendung von a konfiguriert Gebietsschema, das einen Punkt „.“ erwartet. als Dezimaltrennzeichen. Dies entspricht dem von Ihnen erwarteten Eingabeformat (5.1) und verhindert die InputMismatchException.

Das obige ist der detaillierte Inhalt vonWarum löst „Scanner.nextDouble()' eine „InputMismatchException' aus und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage