C#には、実行中のプラットフォームに応じて変化する静的プロパティEnvironment.Newlineがあります。
Javaで同様のものはありますか?
C#には、実行中のプラットフォームに応じて変化する静的プロパティEnvironment.Newlineがあります。
Javaで同様のものはありますか?
回答:
Java 7(およびAndroid APIレベル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()
システム依存の行区切り文字列を返します。常に同じ値を返します-システムプロパティline.separatorの初期値。UNIXシステムでは、「\ n」を返します。Microsoft Windowsシステムでは、「\ r \ n」を返します。
このプロパティは、多くの人が思っているほど有用ではないことに注意してください。たとえば、アプリがWindowsマシンで実行されているからといって、読み込んでいるファイルがWindowsスタイルの行区切り文字を使用しているとは限りません。多くのWebページには、「\ n」と「\ r \ n」の混合物が含まれており、異なるソースからまとめられています。テキストを一連の論理行として読み取る場合は、常に3つの主要な行区切り文字スタイル(Windows( "\ r \ n")、Unix / Linux / OSX( "\ n")、およびOSX以前のMac( "\ r")。
テキストを書いているときは、どのプラットフォームで実行しているのかよりも、ファイルがどのように使用されるのかをもっと気にする必要があります。たとえば、Windowsのメモ帳でファイルを読むことを期待する場合は、「\ r \ n」を使用する必要があります。これは、1種類の区切り文字しか認識しないためです。
(?:\r?\n|\r)したくなりますが(?:\r?n)、安全ではないと思います。(?:\r\n|[\r\n])とにかく好きです。より多くのキャラクターがいることは知っていますが、見た目はすっきりしています。:Dそして、あなたは気にしない場合はどのように多くのあなたが消費する行区切り、[\r\n]+うまく動作します。