Beim Umgang mit Eingaben in Java kann es Situationen geben, in denen Sie nicht im Voraus wissen, wie viele Zeilen Sie lesen werden. Dies kommt häufig bei Codierungsherausforderungen oder Szenarios vor, in denen Sie eine Datei oder einen Stream bis zum Ende lesen. In diesem Beitrag zeige ich Ihnen eine einfache Möglichkeit, dies mit Java zu handhaben.
Stellen Sie sich vor, Sie erhalten eine unbekannte Anzahl Zeilen als Eingabe. Ihre Aufgabe besteht darin, alle Zeilen bis zum Ende der Datei (EOF) zu lesen und jede Zeile mit der vorangestellten Zeilennummer auszudrucken.
So sieht die Eingabe/Ausgabe aus:
Hello world I am a file Read me until end-of-file.
1 Hello world 2 I am a file 3 Read me until end-of-file.
Java bietet eine praktische Möglichkeit, solche Probleme mit der Scanner-Klasse und ihrer hasNext()-Methode zu lösen. Mit dieser Methode können wir Eingaben lesen, bis keine Daten mehr zum Lesen vorhanden sind (EOF).
Lassen Sie uns direkt in den Code eintauchen:
import java.io.*; import java.util.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); for (int i = 1; sc.hasNext(); i++) { String line = sc.nextLine(); System.out.println(i + " " + line); } sc.close(); } }
Erforderliche Pakete importieren: Wir importieren java.util.Scanner, um die Scanner-Klasse zum Lesen von Eingaben zu verwenden.
Scanner initialisieren: Wir erstellen ein Scannerobjekt zum Lesen aus der Standardeingabe (System.in).
Bis zum EOF lesen: Die for-Schleife ist so konzipiert, dass sie Zeilen liest, bis keine Eingabe mehr erfolgt. Die Bedingung sc.hasNext() prüft, ob weitere Eingaben zu lesen sind. Wenn ja, liest es die nächste Zeile mit sc.nextLine().
Mit Zeilennummer drucken: Für jede gelesene Zeile drucken wir sie zusammen mit ihrer Zeilennummer aus. Wir verwenden einen Schleifenzähler i, der bei 1 beginnt und sich mit jeder Iteration erhöht.
Scanner schließen: Obwohl dies hier nicht unbedingt erforderlich ist, empfiehlt es sich, den Scanner zu schließen, wenn Sie fertig sind, um Ressourcenlecks zu vermeiden.
Dieser Ansatz ist einfach, aber effektiv, um eine unbekannte Anzahl von Zeilen bis zum EOF in Java zu lesen. Es ist praktisch bei der Programmierung von Wettbewerben, beim Lesen von Dateien oder in jeder Situation, in der Sie mit Datenströmen zu tun haben.
Das obige ist der detaillierte Inhalt vonLesen Sie Eingaben bis EOF (End-of-File) und nummerieren Sie Ihre Zeilen mühelos | Wettbewerbsfähige Programmierung Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!