Ich habe ein spezifisches Problem in Bezug auf Scanner
und seine Art der Eingabe von System.in
.Java Multiline-Scanner-Eingang
Was ich tun möchte: Ich muss eine einzelne Eingabe aus System.in
lesen. Das Problem ist, dass dieser Eingang mehr als eine Zeile haben kann (die Eingabe kann viele \n
Zeichen haben).
Was ich versucht:
Die offensichtliche Sache, die ich versuchte, ist Scanner.nextLine()
Methode, aber natürlich, damit alle Daten nicht lesen. Das nächste, was ich versuchte, ist dies:
Scanner sc = new Scanner(System.in);
List<String> data = new ArrayList<>();
while(sc.hasNextLine()){
String line = sc.nextLine();
if(line.isEmpty()){
break;
}
data.add(line);
}
Aber das wird auch eine Menge Daten überspringt - zum Beispiel, wenn es eine leere Zeile in der Mitte des gegebenen Textes.
Ich habe auch versucht, die break;
Anweisung zu entfernen und hoffe, dass die while(sc.hasNextLine())
Schleife sich selbst bricht, aber dies wird nie passieren, da Scanner auf die Daten warten wird.
Kann dies in Java getan werden? Vielen Dank für Ihre Zeit
Die Schleife selbst brechen _will_. Sie müssen nur einen Zeilenende-Zeichen geben. – Sweeper
vielleicht ist dies eine Lösung? https://stackoverflow.com/a/42429171/3959856 –