如何在Java中获得一个依赖于平台的换行符?我不能到处都用“\n”。
当前回答
String.format("%n")也是可能的。
或者String.format("%n").intern()来节省一些字节。
其他回答
你可以使用
System.getProperty("line.separator");
得到行分隔符
从JDK 1.1开始,BufferedWriter类就有了"newLine()"方法,用于编写依赖于平台的新行。它还提供了StringWriter类,使得提取新行成为可能:
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);
}
}
除了行。如果您使用的是java 1.5或更高版本,则使用String. separator属性。格式(或其他格式化方法),您可以使用%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。
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
上面的代码段将有两个字符串,由新行分隔,与平台无关。
如果您试图将换行符写入文件,您可以简单地使用BufferedWriter的newline()方法。
推荐文章
- 为什么MongoDB Java驱动在条件中使用随机数生成器?
- 即使从未抛出异常,使用try-catch块的代价是否昂贵?
- 什么时候我们应该使用观察者和可观察对象?
- Java中的split()方法对点(.)不起作用。
- Eclipse调试器总是阻塞在ThreadPoolExecutor上,没有任何明显的异常,为什么?
- Java生成两个给定值之间的随机数
- 如何有效地从数组列表或字符串数组中删除所有空元素?
- 比较JUnit断言中的数组,简洁的内置方式?
- codestyle;把javadoc放在注释之前还是之后?
- 如何在Spring中定义List bean ?
- 将Set<T>转换为List<T>的最简洁的方法
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用Java重命名文件
- URL从Java中的类路径加载资源
- .toArray(new MyClass[0]) or .toArray(new MyClass[myList.size()])?