Czy w Javie jest zdefiniowana stała Newline, taka jak Environment.Newline w C #?


199

W języku C # istnieje statyczna właściwość Environment.Newline, która zmieniła się w zależności od uruchomionej platformy.

Czy jest coś podobnego w Javie?


2
Techniczly należy zapytać: W jaki sposób Java stanowią własność NEWLINE że c # realizowane jako Environment.Newline kiedy było tworzone
Peter

5
Teraz, kiedy ponownie przeczytać moje oświadczenie zastanawiam się dlaczego ja też zastanawiam się, co myślałem
Peter

Odpowiedzi:



88

Od wersji Java 7:

System.lineSeparator()

Java API: System.lineSeparator

Zwraca zależny od systemu ciąg separatora linii. Zawsze zwraca tę samą wartość - wartość początkową właściwości systemowej line.separator. W systemach UNIX zwraca „\ n”; w systemach Microsoft Windows zwraca „\ r \ n”.


60

Pamiętaj, że ta właściwość nie jest tak przydatna, jak wielu ludzi ją uważa. To, że na przykład aplikacja działa na komputerze z systemem Windows, nie oznacza, że ​​czytany plik będzie używał separatorów linii w stylu Windows. Wiele stron internetowych zawiera mieszankę „\ n” i „\ r \ n”, które zostały zebrane z różnych źródeł. Czytając tekst jako ciąg linii logicznych, należy zawsze szukać wszystkich trzech głównych stylów separatora linii: Windows („\ r \ n”), Unix / Linux / OSX („\ n”) i Mac OS w wersji starszej niż OSX („\ r”).

Kiedy jesteś pisanie tekstu, należy być bardziej zainteresowani, jak plik zostanie użyty niż platforma używasz dalej. Na przykład, jeśli oczekujesz, że ludzie będą czytać plik w Notatniku Windows, powinieneś użyć „\ r \ n”, ponieważ rozpoznaje on tylko jeden rodzaj separatora.


Czy Mac OS w wersji starszej niż OSX („\ r”) jest nadal w praktyce używany? Czy prawdą jest, że można bezpiecznie „zapomnieć”?
Pacerier

6
Cóż, niezależnie od tego, czy same maszyny są nadal w użyciu, musisz założyć, że nadal istnieją dokumenty napisane na komputerach Mac z wcześniejszymi wersjami systemu operacyjnego. Wiem, że to kuszące, aby skrócić (?:\r?\n|\r)do (?:\r?n), ale nie, nie sądzę, że to bezpieczne. I (?:\r\n|[\r\n])tak wolę ; Wiem, że to więcej postaci, ale wygląda to ładniej. : D A jeśli nie obchodzi , ile linia separatory można konsumować, [\r\n]+działa dobrze.
Alan Moore,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.