Heim >Java >javaLernprogramm >Warum erhalte ich eine „NoSuchElementException', wenn ich die Scanner-Klasse von Java verwende?

Warum erhalte ich eine „NoSuchElementException', wenn ich die Scanner-Klasse von Java verwende?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-04 02:45:11842Durchsuche

Why Am I Getting a

Fehlerbehebung bei „NoSuchElementException“ in Java.Util.Scanner

Der „NoSuchElementException“-Fehler in Java wird typischerweise durch einen Leseversuch verursacht eine geschlossene oder leere Eingabequelle mithilfe der Scanner-Klasse. In Ihrem Fall tritt diese Ausnahme auf, wenn Sie versuchen, die zweite Ganzzahl vom Benutzer zu lesen (Zeile 17 in Ihrem Code).

Um dieses Problem zu beheben, untersuchen wir die Scanner-Klasse im Detail:

Scanner-Klasse

Mit der Scanner-Klasse können Sie Textdaten aus einer Quelle wie System.in (der Konsole) lesen. Mit seinen Methoden können Sie verschiedene Datentypen, einschließlich Ganzzahlen (nextInt()), aus der Quelle extrahieren.

In Ihrem Code erstellen Sie ein Scannerobjekt namens „input“, um Eingaben von der Konsole zu lesen. Anschließend versuchen Sie, zwei ganzzahlige Werte in die Variablen Nummer1 und Nummer2 einzulesen.

Fehleranalyse

Der Fehler „NoSuchElementException“ deutet darauf hin, dass das Scanner-Objekt erwartet, eine Ganzzahl zu finden in der nächsten Eingabezeile, kann aber keine finden. Dies kann mehrere Gründe haben:

  • Keine Ganzzahleingabe: Stellen Sie sicher, dass Sie tatsächlich zwei Ganzzahlen in separaten Zeilen in der Konsole eingegeben haben.
  • Falscher Eingabetyp: Überprüfen Sie noch einmal, ob die von Ihnen bereitgestellte Eingabe vom Typ ist int.
  • Scanner geschlossen: Stellen Sie sicher, dass der Scanner nicht geschlossen ist, bevor Sie versuchen, Eingaben zu lesen.

Vorgeschlagene Lösung

Um dieses Problem zu beheben, sollten Sie eine Prüfung hinzufügen, um sicherzustellen, dass der Scanner vor dem Extrahieren eine weitere Ganzzahl lesen muss it:

if (input.hasNextInt()) {
  number2 = input.nextInt(); 
} else {
  // Handle the case where no integer is found
  // (e.g., display an error message or set number2 to a default value)
}

Durch die Einbindung dieser Prüfung können Sie feststellen, ob eine andere Ganzzahl verfügbar ist, bevor Sie versuchen, sie zu lesen. Wenn keine vorhanden ist, können Sie entsprechende Maßnahmen ergreifen, z. B. eine Fehlermeldung anzeigen oder Nummer2 auf einen Standardwert setzen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich eine „NoSuchElementException', wenn ich die Scanner-Klasse von Java verwende?. 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