プラットフォーム依存の改行文字を取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/207947

質問

Javaでプラットフォーム依存の改行を取得するにはどうすればよいですか?どこでも" \ n" を使用することはできません。

役に立ちましたか?

解決

line.separatorプロパティに加えて、Java 1.5以降と String.format (またはその他の formatting メソッド)を使用している場合は、%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を参照詳細については。

他のヒント

Java 7には System.lineSeparatorがあります() メソッド。

使用できます

System.getProperty("line.separator");

行区切りを取得する

ファイルに改行を書き込もうとしている場合は、BufferedWriterの newLine()メソッド。

これも可能です: String.format("%n")

または String.format("%n")。intern()を使用してバイトを節約します。

BufferedWriter インスタンスを使用してファイルに書き込む場合は、そのインスタンスの newLine()メソッドを使用します。プラットフォームに依存しない方法でファイルに新しい行を書き込むことができます。

StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();

上記のスニペットには、プラットフォームに関係なく、改行で区切られた2つの文字列があります。

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( );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top