Heim > Java > javaLernprogramm > Wie vermeide ich „NoSuchElementException' bei Verwendung von Javas „Scanner'?

Wie vermeide ich „NoSuchElementException' bei Verwendung von Javas „Scanner'?

Patricia Arquette
Freigeben: 2024-12-04 22:59:12
Original
996 Leute haben es durchsucht

How to Avoid `NoSuchElementException` When Using Java's `Scanner`?

Debuggen von NoSuchElementException in Java

Wenn bei der Verwendung der Scanner-Klasse von Java die „NoSuchElementException“ auftritt, weist dies auf eine Diskrepanz zwischen der bereitgestellten Eingabe und der Eingabe hin Erwartungen der Klasse. Der Fehler tritt auf, wenn der Scanner versucht, einen Wert abzurufen, aber keiner gefunden wird.

Bedenken Sie den folgenden Codeausschnitt:

import java.util.Scanner;

public class Addition {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int number1, number2, sum;

    System.out.print("Enter First Integer: ");
    number1 = input.nextInt();

    System.out.print("Enter Second Integer: ");
    number2 = input.nextInt();

    sum = number1 + number2;
    System.out.printf("Sum is %d\n", sum);
  }
}
Nach dem Login kopieren

Wenn der Benutzer nur eine Ganzzahl eingibt und vor der Eingabe die Eingabetaste drückt Zweitens wird eine NoSuchElementException ausgelöst.

Lösung

Zu Um dieses Problem zu beheben, prüfen Sie vor dem Lesen die Verfügbarkeit einer anderen Ganzzahl. Hier ist eine modifizierte Version des Codes:

if (input.hasNextInt()) {
  number1 = input.nextInt();
} else {
  // Handle input error or set number1 to a default value
}
Nach dem Login kopieren

Durch die Einbindung dieser Prüfung stellt der Code sicher, dass er nur dann eine Ganzzahl liest, wenn eine verfügbar ist, wodurch die Ausnahme verhindert wird.

Alternative Option

Ein anderer Ansatz besteht darin, die Methode hasNextLine() zu verwenden, um zu prüfen, ob weitere Eingaben vorliegen, und dann nextLine() aufzurufen um den Puffer zu leeren, bevor versucht wird, eine andere Ganzzahl abzurufen.

Das obige ist der detaillierte Inhalt vonWie vermeide ich „NoSuchElementException' bei Verwendung von Javas „Scanner'?. 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