我如何获得平台相关的新行字符?

如何在Java中获得依赖于平台的换行符? 我无法在任何地方使用"\n"

除了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 ^^ 

有关更多详细信息,请参阅Formatter的Java 1.8 API 。

您可以使用

 System.getProperty("line.separator"); 

得到行分隔符

Java 7现在有一个System.lineSeparator()方法。

如果你正在尝试写一个换行符到一个文件,你可以简单地使用BufferedWriter的newLine()方法。

这也是可能的: String.format("%n")

String.format("%n").intern()保存一些字节。

commons-lang库有一个名为SystemUtils.LINE_SEPARATOR的常量字段

使用提供平台无关的方式在文件中写入新行的BufferedWriter类的newLine()方法

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

上面的代码片段将有两个string,不pipe平台如何,都由一个新行分隔。

避免使用String + 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( );