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?
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?
Odpowiedzi:
Począwszy od Java 7 (i Android API poziom 19):
System.lineSeparator()
Dokumentacja: Java Platform SE 7
W przypadku starszych wersji Java użyj:
System.getProperty("line.separator");
Zobacz https://java.sun.com/docs/books/tutorial/essential/environment/sysprop.html dla innych właściwości.
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”.
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.
(?:\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.