Eingegebenen Text Zeile für Zeile ausgeben lassen

_user_q

Aktives Mitglied
Mit dem Code kann ich ein Wort Buchstabe für Buchstabe ausgeben lassen:
Java:
for (char ch : string.toCharArray()) {
    System.out.println(ch);
}
Doch was, wenn ich z. B. folgenden Text eingebe und den dann Zeile für Zeile ausgeben lassen möchte:
Code:
Das
ist
ein
test
Text
Hier soll nicht alles auf einmal ausgegeben werden, sondern Zeile für Zeile:
Java:
String[] inputLineSeparation = string.split(System.getProperty("line.separator"));
Doch wie kann ich das jetzt richtig umsetzen? Die Liste habe ich durch inputLineSeparation ja schon, aber den Rest weiß ich leider nicht umzusetzen. Ich stelle mir aber vor, dass das Umsetzen ähnlich wie mit der Schleife mit .toCharArray() ist.

Danke!
 

Oneixee5

Top Contributor
System.out.println setzt ans Ende jeder Ausgabe einen Zeilenumbruch. Also jede weitere Ausgabe erfolgt auf einer neuen Zeile. Du kannst also mit dem String-Array genauso verfahren wie mit dem Char-Array in deinem ersten Beispiel.
 

_user_q

Aktives Mitglied
System.out.println setzt ans Ende jeder Ausgabe einen Zeilenumbruch. Also jede weitere Ausgabe erfolgt auf einer neuen Zeile. Du kannst also mit dem String-Array genauso verfahren wie mit dem Char-Array in deinem ersten Beispiel.
Nicht dass ich das falsch erklärt habe. Mit dem Code kann ich mir die Liste der Wörter ausgeben, ja, aber ich meinte eigentlich, dass ich jedes Wort einzeln ausgegeben lassen möchte. Aktueller Code:
Java:
 String[] inputLineSeparation = string.split(System.getProperty("line.separator"));
for (String str : inputLineSeparation) {
     System.out.println(str);
 }
Momentaner Output:
Code:
[Das
ist
ein
test
Text]
So soll es aussehen:
Code:
Das
// nächster Output
ist
// nächster Output
ein
// nächster Output
test
// nächster Output
Text
Ich hoffe, ich konnte das jetzt besser verdeutlichen. 😄 Oder ich habe es einfach noch nicht richtig umgesetzt.
 

KonradN

Super-Moderator
Mitarbeiter
Was ist denn der genaue Inhalt von string? Kann es sein, dass in der Variable bereits das drin steht, was Du da an Ausgabe bekommst? Das Problem scheint zumindest vorher zu sein.
 

_user_q

Aktives Mitglied
Was ist denn der genaue Inhalt von string? Kann es sein, dass in der Variable bereits das drin steht, was Du da an Ausgabe bekommst? Das Problem scheint zumindest vorher zu sein.
Das hätte ich dazuschreiben müssen. In einem TextField (JavaFX) steht Folgendes:
1664647544852.png
Und dieser Text soll Zeile für Zeile ausgegeben werden. Also erst wird "Das" ausgegeben, dann "ist" ... und zum Schluss "Test".
Quasi wie:
Java:
System.out.println("Das");
System.out.println("ist");
System.out.println("ein");
System.out.println("test");
System.out.println("Text");
 

KonradN

Super-Moderator
Mitarbeiter
Bitte gib genau an, was Du da hast. Ich habe zum einen den Verdacht, dass die Aussage nicht stimmig ist und zum anderen ist immer der Code wichtig: Wie greifst Du auf was zu? Was ist in der Variable string? Wie ist diese deklariert worden?

Wieso erscheint mir Deine Aussage nicht stimmig zu sein?
TextField ist in JavaFX für einzelne Zeilen:
Text input component that allows a user to enter a single line of unformatted text. Unlike in previous releases of JavaFX, support for multi-line input is not available as part of the TextField control, however this is the sole-purpose of the TextArea control.

Zumindest ich kann derzeit / weiterhin nicht nachvollziehen, was Du genau machst und daher kann ich Dir leider nicht weiterhelfen.
 

_user_q

Aktives Mitglied
Bitte gib genau an, was Du da hast. Ich habe zum einen den Verdacht, dass die Aussage nicht stimmig ist und zum anderen ist immer der Code wichtig: Wie greifst Du auf was zu? Was ist in der Variable string? Wie ist diese deklariert worden?

Wieso erscheint mir Deine Aussage nicht stimmig zu sein?
TextField ist in JavaFX für einzelne Zeilen:


Zumindest ich kann derzeit / weiterhin nicht nachvollziehen, was Du genau machst und daher kann ich Dir leider nicht weiterhelfen.
Tut mir leid, ich hätte die Frage gleich zu Beginn vernünftig stellen sollen. Ich mach es noch mal konkret:
In eine TextArea (JavaFX) (ich habe versehentlich TextField geschrieben) wird ein Text eingegeben (siehe das Bild in Antwort #5).
In einer for-Schleife soll mit System.out.println() jede Zeile nach und nach einzeln ausgegeben werden. Wenn ich System.out.println(textArea.getText()) schreiben würde, bekäme ich alles, was auch in diese TextArea eingegeben wurde, ich möchte aber jede Zeile nach und nach ausgeben lassen.
Das Problem soll mit einer for-Schleife gelöst werden, die nur so oft läuft, wie es auch Zeilen gibt, jedoch weiß ich nicht, wie man ganze Wörter einzeln ausgeben lassen kann. Danke für deine Geduld!
 

KonradN

Super-Moderator
Mitarbeiter
Das passt aber so nicht, was Du schreibst.
  • Die Eingabe von mehreren Zeilen
  • gefolgt vom Auslesen mittels getText()
  • gefolgt vom split Aufruf
liefert ein Array. Dieses kannst Du so durchgehen, wie Du es gemacht hast.

Du wirst da aber nie die [ und ] in die Ausgabe bekommen.

Generell ist der Weg somit schon richtig. Was Probleme bereiten könnte ist der split Aufruf mit dem line.separator. Ich bin mir nicht sicher, wie die TextArea unter Windows die Zeilenumbrüche hat - es kann durchaus sein, dass diese immer \n sind und nie \r\n.

Daher wäre evtl. etwas wie .split("[\r\n]+") zielführender (So auch Leerzeilen entfernt werden sollen).

Aber genau das funktioniert - also in einem konkreten Code könnte das etwas sein wie:
Java:
        String text = area.getText();
        String[] lines = text.split("[\r\n]+");
        for (String line : lines)
            System.out.println(line);
 

_user_q

Aktives Mitglied
Das passt aber so nicht, was Du schreibst.
  • Die Eingabe von mehreren Zeilen
  • gefolgt vom Auslesen mittels getText()
  • gefolgt vom split Aufruf
liefert ein Array. Dieses kannst Du so durchgehen, wie Du es gemacht hast.

Du wirst da aber nie die [ und ] in die Ausgabe bekommen.

Generell ist der Weg somit schon richtig. Was Probleme bereiten könnte ist der split Aufruf mit dem line.separator. Ich bin mir nicht sicher, wie die TextArea unter Windows die Zeilenumbrüche hat - es kann durchaus sein, dass diese immer \n sind und nie \r\n.

Daher wäre evtl. etwas wie .split("[\r\n]+") zielführender (So auch Leerzeilen entfernt werden sollen).

Aber genau das funktioniert - also in einem konkreten Code könnte das etwas sein wie:
Java:
        String text = area.getText();
        String[] lines = text.split("[\r\n]+");
        for (String line : lines)
            System.out.println(line);
Also das Ausgeben funktioniert ja jetzt soweit. Ich wollte das erweitern, indem diese Zeilen nacheinander kopiert und irgendwo eingefügt werden, aber der fügt stattdessen einen ganz komisch Mix ein:
Java:
ClipboardContent inputClipboardContent = new ClipboardContent();
String[] inputLines = textArea.getText().split("[\r\n]+");
// ...
for (String str : inputLines) {
            inputClipboardContent.putString(str);
            Platform.runLater(() -> {
                Clipboard.getSystemClipboard().setContent(inputClipboardContent);
            });

            robot.keyPress(VK_CONTROL);
            robot.keyPress(VK_V);
            robot.keyRelease(VK_CONTROL);
            robot.keyRelease(VK_V);
        }
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
runLater macht das, was der Name sagt: es wird später etwas ausgeführt.

Du setzt den Inhalt des Clipboards also erst später aber einfügen tust du den Inhalt sofort. Das wäre jetzt meine Vermutung.
 

_user_q

Aktives Mitglied
runLater macht das, was der Name sagt: es wird später etwas ausgeführt.

Du setzt den Inhalt des Clipboards also erst später aber einfügen tust du den Inhalt sofort. Das wäre jetzt meine Vermutung.
Ich habe mal 10 Testdurchläufe gemacht:
In TextArea habe ich Folgendes eingegeben:
Code:
abc
def
ghi

jkl
Mit System.out.println() bekomme ich Folgendes ausgegeben - so, wie es sein sollte:
Code:
abc
def
ghi
jkl
Und Folgendes wird von Robot eingefügt (10 Testdurchläufe):
Code:
jkljkljkljkl
jkljkljkljkl
jkljkljkljkl
abcjkljkljkl
jkljkljkljkl
abcjkljkljkl
defjkljkljkl
abcjkljkljkl
abcjkljkljkl
abcjkljkljkl
Folgendes habe ich gemacht, da ich sonst den Fehler Not on FX application thread; currentThread = Thread-93 ausgeworfen bekommen würde:
Java:
 Platform.runLater(() -> /**/);
Ich mache zum ersten Mal etwas aktiv mit Clipboard, deswegen übersehe ich vielleicht etwas ganz Offensichtliches. 🤔
 

_user_q

Aktives Mitglied
runLater macht das, was der Name sagt: es wird später etwas ausgeführt.

Du setzt den Inhalt des Clipboards also erst später aber einfügen tust du den Inhalt sofort. Das wäre jetzt meine Vermutung.
Ich habe es hiermit lösen können, aber danke noch mal!:
Java:
Robot robot= new Robot();
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection stringSelection;

String[] inputLine = textArea.split("[\r\n]+");;

for (String str : inputLine) {
            stringSelection = new StringSelection(str);
            clipboard.setContents(stringSelection, null);

            robot.keyPress(VK_CONTROL);
            robot.keyPress(VK_V);
            robot.keyRelease(VK_CONTROL);
            robot.keyRelease(VK_V);

            robot.keyPress(VK_ENTER);
            robot.keyRelease(VK_ENTER);

            robot.delay(1000);
        }
Allerdings weiß ich nicht, ob Zeile 7 so sinnvoll ist, weil immer wieder ein neues Objekt erstellt wird oder nicht?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Eingegebenen Text wiederholt schreiben lassen Allgemeine Java-Themen 9
cedi Eingegebenen Text in der Konsole nicht sichtbar machen oder nur in Sternchen anzeigen Allgemeine Java-Themen 2
Y ArrayListe eingegebenen index entfernen Allgemeine Java-Themen 1
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
M Thymeleaf th value und th text Allgemeine Java-Themen 1
G Darstellung von Text auf MapContext von GeoTools Allgemeine Java-Themen 2
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
izoards Bestimmter Text aus PDF extrahieren Allgemeine Java-Themen 3
B Scanner erkennt keinen Text in Textdatei, obwohl welcher drinsteht Allgemeine Java-Themen 10
K HTMLEditor HTML Text in Rich Text umwandeln Allgemeine Java-Themen 14
kodela JDialog zeigt Text nicht an Allgemeine Java-Themen 5
L Text filtern Allgemeine Java-Themen 1
Bluedaishi TEXT Kodierung Allgemeine Java-Themen 3
J Die Letzte Zahl aus einer Text datei lesen Allgemeine Java-Themen 8
S Ini Text aus String parsen Allgemeine Java-Themen 1
M itext - Button der Text in Zwischenablage stellt Allgemeine Java-Themen 0
E CSV mit Text und Binärdaten auslesen Allgemeine Java-Themen 7
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
I Text suchen und ersetzen im Word Dokument Allgemeine Java-Themen 3
windl Text mining / deep learning Allgemeine Java-Themen 0
I Text aus Input-Box entnehmen und zuweisen Allgemeine Java-Themen 1
KeexZDeveoper Text Mining Allgemeine Java-Themen 3
L Input/Output Wie kann man in der Konsole einen Text farbig ausgeben z.b in grün Allgemeine Java-Themen 6
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
A Datenexport (Text und Draw) Allgemeine Java-Themen 1
L Text von txt auf JTextArea Allgemeine Java-Themen 4
N Das Ende von bestimmten zeilen in text datei ändern und speichern Allgemeine Java-Themen 3
A 2D-Grafik Text in ein Bild schreiben Allgemeine Java-Themen 11
T Textarea text wird immer überschrieben Allgemeine Java-Themen 4
I Apache POI Word Text einfügen Allgemeine Java-Themen 26
T itext: text in ein textfeld hinzufügen Allgemeine Java-Themen 2
B Farbiger Text in der Konsole Allgemeine Java-Themen 1
K Pdf mit dynamischem Text mit iText Allgemeine Java-Themen 0
D Text Analyzer Allgemeine Java-Themen 2
RalleYTN Audiodatein(.ogg/.wav) in Text konvertieren Allgemeine Java-Themen 0
L Nach Button drücken den Text festspeichern Allgemeine Java-Themen 9
X Löschen von einer Zeile in einer Text Datei. Klappt nicht. Allgemeine Java-Themen 4
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
S Text in mehreren Sprachen korrekt darstellen? Wie waehle ich die Fonts aus..? Allgemeine Java-Themen 0
J Java - Zeile aus Text datei löschen Allgemeine Java-Themen 13
M Text in erstelltes Excelfile schreiben Allgemeine Java-Themen 6
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
P HTML Text bearbeiten Allgemeine Java-Themen 1
B JFrame Text Ausgabe Allgemeine Java-Themen 7
G Makierter Text in Arbeitsspeicher Allgemeine Java-Themen 2
B Text in die Mitte der Konsole schreiben. Allgemeine Java-Themen 1
M Variablen Variablen in Text einbinden Allgemeine Java-Themen 5
P iText Text zentrieren Allgemeine Java-Themen 3
J Verschlüsselung von Text? Allgemeine Java-Themen 2
M Text datei in java jar datei einbinden Allgemeine Java-Themen 4
S Swing Text in eine JTextArea schreiben Allgemeine Java-Themen 17
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
S Robuste Methode um Text von HTML code zu extrahieren..? Allgemeine Java-Themen 6
achillesat Rich Text Editor Allgemeine Java-Themen 2
M CMD-Text anzeigen Allgemeine Java-Themen 10
G Text Mining Allgemeine Java-Themen 7
B Text auf Standarddrucker drucken Allgemeine Java-Themen 3
S Library fuer Internet-Text-Daten-Quellen..? Allgemeine Java-Themen 8
nrg Find and replace Text docx Allgemeine Java-Themen 6
M Ein bestimmtes Wort in einem Text zählen (String in String) Allgemeine Java-Themen 9
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
M Funktion gesucht: Text vektorisieren Allgemeine Java-Themen 20
D Wort in Text mit >100.000 Wörter finden Allgemeine Java-Themen 7
B Text wird nicht richtig angezeigt Allgemeine Java-Themen 9
Q Text Datei einlesen Allgemeine Java-Themen 27
N .doc text ändern Allgemeine Java-Themen 12
R Komponente hat nicht die gesetzten Eingeschaften (Text, Farbe) Allgemeine Java-Themen 3
M NOA an den Source Text des Dokumentes kommen Allgemeine Java-Themen 7
A Text via RegEx durchsuchen und teile ersetzten Allgemeine Java-Themen 5
O Text mit Wildcard gegen regulären Ausdruck prüfen Allgemeine Java-Themen 3
A Umwandlung von Text/Zeichen in Polynome Allgemeine Java-Themen 8
Y Eclipse ppt Folie erzeugen + text plazieren Allgemeine Java-Themen 4
D markierten Text kopieren Allgemeine Java-Themen 2
P Doppeltverkettete Listen + Text Allgemeine Java-Themen 5
DEvent embedded Object Database in Text Format Allgemeine Java-Themen 5
C Datei als ASCII text einlesen ? Allgemeine Java-Themen 16
R Texterkennung - Text aus einem/r Bild/Grafik auslesen Allgemeine Java-Themen 2
M String in Html Text umwandeln Allgemeine Java-Themen 2
T eingefügter Text nach dem rendern spiegelverkehrt Allgemeine Java-Themen 2
lumo encoding einer text-datei Allgemeine Java-Themen 2
E Text ans Ende einer Textdatei anfügen Allgemeine Java-Themen 2
E JTextArea / JEditorPane + Text formatieren Allgemeine Java-Themen 3
R Java Text anderer Schriftart einlesen Allgemeine Java-Themen 2
A AES Key aus Text erzeugen Allgemeine Java-Themen 2
S Koordinaten aus einem Text filtern Allgemeine Java-Themen 11
turmaline Text aus Web-Seiten auslesen Allgemeine Java-Themen 1
MQue Graphics2D Text Allgemeine Java-Themen 2
U Text verschmelzen Allgemeine Java-Themen 8
martin82 Java-Code aus Text-Datei parsen Allgemeine Java-Themen 3
W Text curser auswählen für Paste Allgemeine Java-Themen 15
G HTML-Datei einlesen, Plain Text in Textfile speichern Allgemeine Java-Themen 4
S Bestes Text file encoding..? Allgemeine Java-Themen 36
B UTF-8 Text Allgemeine Java-Themen 3
H Passwortgschützter Text Allgemeine Java-Themen 13
C IReport Feldberechnen und als Text ausgeben Allgemeine Java-Themen 4
D Bild in text tabelle umwandeln Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben