Wie in anderen Antworten erwähnt, funktioniert Ihr Code in erster Linie nicht, da String.replace(...)
das Ziel nicht geändert wird String
. (Es kann nicht - Java-Zeichenfolgen sind unveränderlich!) Tatsächlich replace
wird ein neues String
Objekt erstellt und zurückgegeben, wobei die Zeichen nach Bedarf geändert werden. Aber Ihr Code wirft dann das weg String
...
Hier sind einige mögliche Lösungen. Welches am besten ist, hängt davon ab, was genau Sie versuchen.
// #1
text = text.replace("\n", "");
Entfernt einfach alle Zeilenumbruchzeichen. Dies ist nicht mit Windows- oder Mac-Leitungsbeendigungen möglich.
// #2
text = text.replace(System.getProperty("line.separator"), "");
Entfernt alle Leitungsterminatoren für die aktuelle Plattform. Dies ist nicht der Fall, wenn Sie versuchen, beispielsweise eine UNIX-Datei unter Windows zu verarbeiten, oder umgekehrt.
// #3
text = text.replaceAll("\\r|\\n", "");
Entfernt alle Windows-, UNIX- oder Mac-Zeilenabschlüsse. Wenn es sich bei der Eingabedatei jedoch um Text handelt, werden Wörter verkettet. z.B
Goodbye cruel
world.
wird
Goodbye cruelworld.
Vielleicht möchten Sie dies tatsächlich tun:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
Dies ersetzt jeden Zeilenabschluss durch ein Leerzeichen. Seit Java 8 können Sie dies auch tun:
// #5
text = text.replaceAll("\\R", " ");
Und wenn Sie mehrere Zeilentrennzeichen durch ein Leerzeichen ersetzen möchten:
// #6
text = text.replaceAll("\\R+", " ");