Чи визначена константа Newline у ​​Java, як Environment.Newline в C #?


199

У C # є статична властивість Environment.Newline, яка змінювалася залежно від запущеної платформи.

Чи є щось подібне на Java?


2
Techniczly, вам слід запитати: як Java представляє властивість newLine, що c # реалізовано як Environment.Newline, коли вона створена
Пітер

5
Тепер, коли я перечитав свою заяву, мені цікаво, чому я теж дивуюсь, що я думав
Петро

Відповіді:


280

Станом на Java 7 (та Android API рівня 19):

System.lineSeparator()

Документація: платформа Java SE 7


Для старих версій Java використовуйте:

System.getProperty("line.separator");

Дивіться https://java.sun.com/docs/books/tutorial/essential/environment/sysprop.html про інші властивості.


5
В Android для виклику також потрібен API 19
Hamzeh Soboh

88

Станом на Java 7:

System.lineSeparator()

Java API: System.lineSeparator

Повертає системний рядок роздільника рядків. Він завжди повертає одне і те ж значення - початкове значення системного властивості line.separator. У системах UNIX він повертає "\ n"; в системах Microsoft Windows він повертає "\ r \ n".


60

Пам’ятайте, що ця властивість не настільки корисна, як багато хто думає, що вона є. Наприклад, тому, що ваш додаток працює на машині Windows, наприклад, це не означає, що файл, який він читає, буде використовувати роздільники рядків у стилі Windows. Багато веб-сторінок містять суміш "\ n" та "\ r \ n", зведених з різних джерел. Коли ви читаєте текст у вигляді серії логічних рядків, завжди слід шукати всі три основні стилі роздільника рядків: Windows ("\ r \ n"), Unix / Linux / OSX ("\ n") та до OSX Mac ("\ r").

Коли ви пишете текст, вам слід більше потурбуватися про те, як файл буде використовуватися, ніж на якій платформі ви працюєте. Наприклад, якщо ви очікуєте, що люди прочитають файл у Блокноті Windows, вам слід скористатися "\ r \ n", оскільки він розпізнає лише один вид роздільника.


Чи використовується Mac OS pre "OSX" ("\ r") на практиці? Або правда сказати, що це можна сміливо «забути»?
Pacerier

6
Ну, незважаючи на те, незалежно від того, чи самі машини все ще використовуються, ви повинні припустити, що там ще є документи, написані на Mac OS перед ОС OSX. Я знаю, що це заманливо скоротити (?:\r?\n|\r)до (?:\r?n), але ні, я не думаю, що це безпечно. Я (?:\r\n|[\r\n])все одно віддаю перевагу ; Я знаю, що це більше персонажів, але це виглядає акуратніше. : D І якщо вам не байдуже, скільки розділювачів ліній ви споживаєте, це [\r\n]+працює чудово.
Алан Мур
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.