「これはヤバかったな」という遅刻エピソード

・\n
・System.lineSeparator()
・System.getProperty("line.separator")

のように改行にはいろいろありますが、なぜ分ける必要があるのでしょうか?
場面によって使い分けが必要でしたら、どのときにどれを使う(ここにない者でも可)をおしえていただきたいです

A 回答 (3件)

訂正


MACでは\r(16進でOD)
は9までですね。今はLF(\n)。

普段使わないのでこの辺はちょっと疎いです。
    • good
    • 1

>ちなみに、JavaはOSなどに依存しないはずではなかったですか?



\nはJavaでは非推奨です。

テキストの行末コードはプラットフォームにより異なります。
Windowsでは \r\n の2文字(16進でODOA)。
UNIXでは\n(16進でOA)
MACでは\r(16進でOD)

System.lineSeparator() や%nを使えば単一のソースで
Javaがプラットフォームを判別して
各プラットフォームの正しい行末コードを吐くアプリを作れますが
\nを使うとUNIX用固定になってしまいます。

OSに依存しないということと
OSに無頓着ということとは違います。
上手に違いを吸収するのがosに依存しない
ということです。
    • good
    • 1

・\n unixスタイルの改行コード①



・System.getProperty("line.separator")②
プラットフォーム依存の行末コード

・System.lineSeparator③
プラットフォーム依存の行末コード。

②と③は同じもので、Java7から③が導入されました。
少し短く書けます。それだけ。

でも、プラットフォーム依存の行末コードなら
書式文字列で%nを使うのがお勧めです。

因みにCでは標準ライブラリが\nをプラットフォーム依存の行末コードに
自動変換したりしますが、Javaはしません。
    • good
    • 1
この回答へのお礼

プラットフォームに依存ということだったんですね。基本的には、①を使っていれば問題なさそうですね。
ちなみに、JavaはOSなどに依存しないはずではなかったですか?

お礼日時:2021/04/20 20:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!