回答:
line.separatorプロパティに加えて、Java 1.5以降とString.format(または他のフォーマットメソッド)を使用し%n
ている場合は、次のように使用できます。
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY%n", c);
//Note `%n` at end of line ^^
String s2 = String.format("Use %%n as a platform independent newline.%n");
// %% becomes % ^^
// and `%n` becomes newline ^^
詳細については、フォーマッタ用のJava 1.8 APIを参照してください。
%
ユーザー入力が含まれている可能性がある場合は、これを使用しないでください。
String.format(s + "%n")
によって簡単に解決されString.format("%s%n", s)
ます。(と同じようにeval()
)フォーマット入力としてユーザー入力を含めることは常に危険です。
Java 7にSystem.lineSeparator()
メソッドが追加されました。
lineSeperator(int)
私はしばしば2を一度に使用しているので、いくつかの行区切り文字を返すオーバーロードメソッドを提供することは非常に良いでしょう。
String.join("", Collections.nCopies(5, System.lineSeparator()))
System.lineSeparator().repeat(5)
コモンズ・ラングのライブラリが利用可能と呼ばれる一定のフィールドがあるSystemUtils.LINE_SEPARATORを
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
上記のスニペットには、プラットフォームに関係なく、2つの文字列が改行で区切られます。
BufferedWriter
インスタンスを使用してファイルに書き込む場合はnewLine()
、そのインスタンスのメソッドを使用します。ファイルに新しい行を書き込むためのプラットフォームに依存しない方法を提供します。
String + Stringなどを使用して文字列を追加することは避け、代わりにStringBuilderを使用してください。
String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );
string + string
」などの主張をする前に、必ずメトリックを実行してください。