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); } }
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 }
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!