571

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

4

9 に答える 9

743

Java 7 にはSystem.lineSeparator()メソッドが追加されました。

于 2012-06-07T18:05:42.250 に答える
654

使用できます

System.getProperty("line.separator");

行区切りを取得するには

于 2008-10-16T09:39:26.937 に答える
374

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 for Formatterを参照してください。

于 2008-10-16T18:45:40.893 に答える
43

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

于 2008-10-16T18:49:15.550 に答える
31

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

またはString.format("%n").intern()、いくつかのバイトを節約します。

于 2013-04-25T14:48:48.980 に答える
22

commons-langライブラリには、 SystemUtils.LINE_SEPARATORという定数フィールドがあります。

于 2012-03-28T16:33:54.407 に答える
17
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();

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

于 2015-09-29T11:20:31.210 に答える
13

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

于 2012-01-20T12:24:21.707 に答える
-4

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( );
于 2012-12-05T08:53:13.207 に答える