Scanner.nextLine() und seine Auswirkung auf nachfolgende Eingaben verstehen
Die in der Klasse java.util.Scanner definierte Methode nextLine() von Java wird häufig dazu verwendet Lesen Sie Textzeilen aus der Standardeingabe (der Tastatur des Benutzers). Allerdings kann seine Verwendung in bestimmten Szenarien zu unerwartetem Verhalten führen.
Betrachten Sie das folgende Beispiel, in dem nextLine() innerhalb einer Menüschleife verwendet wird:
Scanner scanner = new Scanner(System.in); while (true) { // Display menu options // ... System.out.print("Please enter your selection: "); int selection = scanner.nextInt(); if (selection == 1) { // This issue arises here when reading a sentence System.out.print("Enter a sentence: "); String sentence = scanner.nextLine(); } // ... }
Wenn dieser Code ausgeführt wird, schlägt er fehl um den Benutzer zur Eingabe eines Satzes aufzufordern, wenn der Benutzer den Wert 1 eingibt. Stattdessen fährt der Code direkt mit der nächsten Eingabeaufforderung für einen Index fort.
Der Grund für dieses Verhalten liegt darin in der Natur von nextLine(). Bei Verwendung nach nextInt() liest und verbraucht es das verbleibende Zeilenumbruchzeichen (n) im Eingabestream. Wenn nextLine() aufgerufen wird, um den Satz zu lesen, stößt es folglich auf einen leeren Eingabepuffer und gibt eine leere Zeichenfolge zurück.
Um dieses Problem zu beheben, ist es notwendig, das Zeilenumbruchzeichen explizit mit scanner.nextLine( zu konsumieren ) nach jedem scanner.nextInt(). Dadurch wird sichergestellt, dass der Eingabepuffer geleert wird und nextLine() die Benutzereingaben für den Satz korrekt lesen kann.
Durch Befolgen dieser Richtlinie können Sie Inkonsistenzen bei der Verwendung von nextLine() vermeiden und sicherstellen, dass Ihr Code den Benutzer korrekt verarbeitet Eingabe sowohl in Single-Pass- als auch in Multi-Pass-Szenarien.
Das obige ist der detaillierte Inhalt vonWarum schlägt „scanner.nextLine()' nach „scanner.nextInt()' in Java fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft