我如何获得平台相关的新行字符?
如何在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( );