Java, Scanner copy paste aber mehrere Zeilen?
Hi... also mein pronlem liegt darin das ich mehere zeilen mit copy und paste in java bearbeiten will aber der nimmt bei next() und nextLine() immer nur die erste Line...
Gitb es eine Funktion die die ganze eingabe nimmt?
3 Antworten
Dann willst du keinen Scanner vermutlich, denn der ist eben dafür gedacht, das gestückelt auszugeben.
Evtl. ist "Scanner.tokens()" was du suchst. Oder aber du willst eigentlich den darunterliegenden InputStream haben (dann kannst du dir die Erstellung des Scanners sparen und eben stattdessen den Inputstream direkt anderweitig verwenden).
Wenn du mit dem Scanner auf irgendwas zugreifst, was ein Ende hat (also z.B. eine Datei oder ein String, aber nicht die Konsole), kannst du mit "useDelimier()" einstellen, wie weit er bei "next()" lesen soll.
Z.B.:
String mehrzeiligerText = """
Hallo,
ich bin ein mehrzeiliger Text.
Ich will in einem Stück gelesen werden.
Bitte alles auf einmal.
Danke.""";
Scanner scanner = new Scanner(mehrzeiligerText);
scanner.useDelimiter("\\Z");
System.out.println(scanner.next());
Befasse dich mit den Grundlagen der Programmierung, da scheint es stark zu hapern.
Ein einfacher (eigentlich n-facher...) Loop würde hier abhilfe schaffen.
Stimmt das mit dem do hab ich gestern erst gelernt
das do ist hier in Java gar nicht nötig, sorry.
Das braucht es nur bei fußgesteuerten While-Schleifen.
Also
do
{
...
}
while (...scanner.hasNext());
ginge auch, wie du willst.
Hey... ich schaffe das nicht xD auch wenn ich nach jeder zeile if !hasnext break mache
while (scanner.hasNext()) {
System.out.println("Hallo");
if (!scanner.hasNextLine()) break;
conText = conText.concat(scanner.nextLine());
if (!scanner.hasNextLine()) break;
}
Aber ich weis ja ncht wie viele zeilen muss ich dann mit hasNext() arbeiten?