Есть ли константа Newline, определенная в Java, как Environment.Newline в C#?

В C# есть статическое свойство Environment.Newline, которое изменяется в зависимости от работающей платформы.

Есть ли что-нибудь подобное в Java?

3 ответа

Решение

Начиная с Java 7 (и уровня API Android 19):

System.lineSeparator()

Документация: Java Platform SE 7


Для более старых версий Java используйте:

System.getProperty("line.separator");

См. https://java.sun.com/docs/books/tutorial/essential/environment/sysprop.html для других свойств.

Начиная с Java 7:

System.lineSeparator()

Java API: System.lineSeparator

Возвращает системно-зависимую строку разделителя строк. Он всегда возвращает одно и то же значение - начальное значение системного свойства line.separator. В системах UNIX возвращает "\n"; в системах Microsoft Windows возвращает "\r\n".

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

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

Другие вопросы по тегам