Java講座

拡張性/柔軟性を獲得する章
3.8. 改行コード
『目的』

移植性を考慮して改行コードの扱いに注意しましょう。

『Before』

改行コードとして"\n"または"\r"をハードコーディングすることは好ましくありません。 改行コードはプラットフォームによってが異なります。 プラットフォームに依存するソースコードになってしまいますね。 (Windowsでは「\r\n」、UNIXでは「\n」、Macでは「\n\r」が改行として振る舞われます。)

改行コードをハードコーディングするとこうなります。
// 改行を文字列に含める
StringBuffer str = new StringBuffer();
str.append("Hello");
str.append("\n");
str.append(name);

"一行目\n二行目\n三行目"
別のプラットフォームにおいては正しく動作しないかもしれません。

『After』

改行コードをハードコーディングしないようにします。
// 改行を文字列に含める
StringBuffer str = new StringBuffer();
str.append("Hello");
// プラットフォームに適した改行コードを取得\
str.append(System.getProperty("line.separator"));
str.append(name);

private static final String BR = System.getProperty("line.separator");
String s = "一行目" + BR + "二行目" + BR + "三行目";

StringWriter buffer = new StringWriter();
PrintWriter pw = new PrintWriter(buffer);
pw.println("1行目");
pw.println("2行目");
pw.print("3行目");
String s = buffer.toString();
どのプラットフォームにおいても適切な改行コードが取得できるため移植が容易になります。 Write Once Run Anyware の一端です。

『まとめ』

改行コードはハードコーディングしないこと。
改行コードが欲しければSystem.getProperty("line.separator")を使うこと。
前のページ   次のページ

当ページ・当社へのご意見やご感想があればお手数ですが「お問い合わせ」までお願いいたします。
当社への就職をお考えの方は「採用情報ページ」までお願いいたします。
C言語を学びたい方は「C言語講座」もどうぞ。