如何在Java中获得一个与平台无关的换行符?我不能在每个地方都使用"\n"。
Java 7 now has a System.lineSeparator()
method.
lineSeperator(int)
并返回一些行分隔符的数量,那就太好了,因为我经常需要同时使用两个。 - KonString.join("", Collections.nCopies(5, System.lineSeparator()))
可以将五个行分隔符拼接成一个字符串。 - Samuel HarmerSystem.lineSeparator().repeat(5)
可以重复输出5次系统换行符。 - Jacob G.您可以使用
System.getProperty("line.separator");
获取行分隔符
System.lineSeparator()
,以便回答这个问题吗? - Gray除了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 Formatter API了解更多细节。
String.format(s + "%n")
的问题可以通过使用String.format("%s%n", s)
轻松解决。将用户输入作为格式化字符串(与eval()
类似)总是存在风险的。 - Franklin YuString.format("%n")
。或者使用String.format("%n").intern()
以节省一些字节。\r\n
的组合。 - mr5'\n'
还是'\r\n'
。 - Agi Hammerthief在 commons-lang 库中,提供了一个叫做 SystemUtils.LINE_SEPARATOR 的常量字段。
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
无论在哪个平台上,上述代码段将会有两个字符串,并用换行符分隔。
BufferedWriter
实例将内容写入文件中,请使用该实例的newLine()
方法。它提供了一种跨平台的方式来在文件中写入新行。public static String getSystemNewLine() {
try {
StringWriter sw = new StringWriter();
BufferedWriter bw = new BufferedWriter(sw);
bw.newLine();
bw.flush();
String s = sw.toString();
bw.close();
return s;
} catch (Exception e) {
throw new Error(e);
}
}
String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );