猫耳少女と夜の街
480 words
2 minutes
javaの改行について
皆さんJavaの改行、\n でやってませんか?
はい、僕はやってました。
多分、現場で働いているエンジニアの人たちは経験あると思うんですが、WindowsとLinuxとかで改行がうまくいかないってこと、あったとおもいます。
「え、なんでここ改行されてないの?」とか、「ログが見づらいんだけど?」とかなった経験あるんじゃ無いでしょうか。
これ、実はOSによって改行コードが違うのが原因なんです。
改行コードって何者?
ざっくり言うと、「ここで改行してね!」っていう見えない記号です。
これOSによってルールがバラバラなんですよ。
windowsでは『\r+\n』(CR+LF)
linuxでは『\n』(LF)
Macintosh(macos)では『\r』(CR)
で改行しています。
TIPMacintoshは昔のMACのことです。今はlinuxと同じ『\n』です。
つまり、Javaのコードで \n をベタ書きしてると、「俺んとこでは動くけどあっちではズレる」みたいなややこしいことが起きちゃいます。
それではいけませんね。
javaはそれを防ぐことができます。
javaの改行メソッド
javaには改行をするためのメソッドが存在しています。
それが
System.lineSeparator();
です。
javaをあんまり使ったことがない人は?ってなると思うのですが、これはシステム依存の行区切り文字を取得してくれるメソッドです。これによってプラットフォームには依存せずに改行できるようになるのです。
まとめ
- \n だけの改行は、OSによってはちゃんと動かないことがある。
- Javaでは System.lineSeparator() を使うほうがいい。
- どんな環境でも同じように動く、コードを書こう!