Heim >Java >javaLernprogramm >Wie kann ich ungültige Ganzzahleingaben mit dem Java-Scanner zuverlässig verarbeiten?

Wie kann ich ungültige Ganzzahleingaben mit dem Java-Scanner zuverlässig verarbeiten?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-13 13:48:15920Durchsuche

How Can I Robustly Handle Invalid Integer Input with Java's Scanner?

Überwindung der Einschränkungen durch ungültige Scannereingaben

Um die Robustheit des Programms zu verbessern, stehen Benutzer vor der Herausforderung, die Eingabe auf gültige Ganzzahlwerte zu beschränken und nicht numerische Eingaben zu verarbeiten. Eine beliebte Bibliothek, Scanner, bietet eine Lösung für diese Hürden.

Validating Integer Input

Scanner stellt die Methode hasNextInt() bereit, die überprüft, ob die Eingabe ansteht kann als ganze Zahl interpretiert werden. Diese Methode bleibt statisch, was bedeutet, dass sie nicht über eine Eingabe hinausgeht.

Beispielimplementierung

Die Einbindung von hasNextInt() ermöglicht eine elegante Lösung:

Scanner sc = new Scanner(System.in);
System.out.print("Enter number 1: ");
while (!sc.hasNextInt()) sc.next(); // Skips non-numeric input
int num1 = sc.nextInt();
int num2;
System.out.print("Enter number 2: ");
do {
    while (!sc.hasNextInt()) sc.next(); // Skips non-numeric input
    num2 = sc.nextInt();
} while (num2 < num1); // Enforces num2 being greater than num1

Außergewöhnliche Eingabe Handhabung

Da hasNextXXX-Methoden statisch bleiben, ist es notwendig, next() aufzurufen, um jeglichen „Müll“ aus ungültigen Eingaben zu verwerfen.

Verwandte Fragen

  • [Wie verhindere ich, dass der Scanner Ausnahmen für falsche Eingaben auslöst? Typen?](https://java.stackexchange.com/questions/2600398/how-do-i-keep-a-scanner-from-throwing-Exceptions-when-the-wrong-type-is-entered)

Das obige ist der detaillierte Inhalt vonWie kann ich ungültige Ganzzahleingaben mit dem Java-Scanner zuverlässig verarbeiten?. 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