如何获得与平台相关的新行字符?
-
03-07-2019 - |
题
如何在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 ^^
请参阅 Java 1.8 API for Formatter 了解更多详情。
其他提示
Java 7现在有一个 System.lineSeparator ()
方法。
您可以使用
System.getProperty("line.separator");
获取行分隔符
如果您正在尝试为文件写一个换行符,您可以简单地使用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 + 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( );
不隶属于 StackOverflow