拡張性/柔軟性を獲得する章
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”)を使うこと。
-
IS 559680 / ISO27001
認証範囲 本社、芝大門オフィス情報セキュリティ基本方針 -
個人情報保護方針
個人情報の取扱いについて
保有個人データ又は
第三者提供記録に関する
事項の周知について
特定個人情報の取扱いについて -
FS 671851 / ISO9001
認証範囲 本社、芝大門オフィス品質方針