Gibt es in Java eine Newline-Konstante wie Environment.Newline in C #?

198

In C # gibt es die statische Eigenschaft Environment.Newline , die sich je nach laufender Plattform geändert hat.

Gibt es etwas Ähnliches in Java?

orj
quelle
2
Technisch sollten Sie fragen: Wie stellt Java die newLine-Eigenschaft dar, die c # als Environment.Newline implementiert hat, als sie erstellt wurde
Peter
5
Jetzt, wo ich meine Aussage noch einmal gelesen habe, frage ich mich, warum ich mich auch frage, was ich gedacht habe
Peter

Antworten:

88

Ab Java 7:

System.lineSeparator()

Java-API: System.lineSeparator

Gibt die systemabhängige Zeilentrennzeichenfolge zurück. Es wird immer derselbe Wert zurückgegeben - der Anfangswert der Systemeigenschaft line.separator. Auf UNIX-Systemen wird "\ n" zurückgegeben. Auf Microsoft Windows-Systemen wird "\ r \ n" zurückgegeben.

J.Steve
quelle
60

Beachten Sie, dass diese Eigenschaft nicht so nützlich ist, wie viele Leute denken. Nur weil Ihre App beispielsweise auf einem Windows-Computer ausgeführt wird, bedeutet dies nicht, dass die gelesene Datei Linientrennzeichen im Windows-Stil verwendet. Viele Webseiten enthalten eine Mischung aus "\ n" und "\ r \ n", die aus unterschiedlichen Quellen zusammengeschustert wurden. Wenn Sie Text als eine Reihe logischer Zeilen lesen, sollten Sie immer nach allen drei Hauptstilen für Zeilentrennzeichen suchen: Windows ("\ r \ n"), Unix / Linux / OSX ("\ n") und Mac vor OSX ("\ r").

Wenn Sie Text schreiben , sollten Sie sich mehr darum kümmern, wie die Datei verwendet wird, als um die Plattform, auf der Sie ausgeführt werden. Wenn Sie beispielsweise erwarten, dass Benutzer die Datei in Windows Notepad lesen, sollten Sie "\ r \ n" verwenden, da nur die eine Art von Trennzeichen erkannt wird.

Alan Moore
quelle
Wird der Pre-OSX-Mac ("\ r") noch praktisch verwendet? Oder ist es wahr zu sagen, dass es sicher "vergessen" werden kann?
Pacerier
6
Unabhängig davon, ob die Computer selbst noch verwendet werden oder nicht, müssen Sie davon ausgehen, dass es noch Dokumente gibt, die auf Macs vor OSX geschrieben wurden. Ich weiß , es zu verkürzen , ist verlockend (?:\r?\n|\r)zu (?:\r?n), aber nein, ich glaube nicht , es ist sicher. Ich bevorzuge es (?:\r\n|[\r\n])trotzdem; Ich weiß, es sind mehr Charaktere, aber es sieht ordentlicher aus. : D Und wenn es Ihnen egal ist, wie viele Zeilentrennzeichen Sie verbrauchen, [\r\n]+funktioniert das einwandfrei.
Alan Moore