如何在Java中获得一个依赖于平台的换行符?我不能到处都用“\n”。
除了行。如果您使用的是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。
避免使用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( );
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
上面的代码段将有两个字符串,由新行分隔,与平台无关。
从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);
}
}
推荐文章
- 到底是什么导致了堆栈溢出错误?
- 为什么Android工作室说“等待调试器”如果我不调试?
- Java:路径vs文件
- ExecutorService,如何等待所有任务完成
- Maven依赖Servlet 3.0 API?
- 如何在IntelliJ IDEA中添加目录到应用程序运行概要文件中的类路径?
- getter和setter是糟糕的设计吗?相互矛盾的建议
- Android room persistent: AppDatabase_Impl不存在
- Java的String[]在Kotlin中等价于什么?
- Intellij IDEA上的System.out.println()快捷方式
- 使用Spring RestTemplate获取JSON对象列表
- Spring JPA选择特定的列
- URLEncoder不能翻译空格字符
- Java中的super()
- 如何转换JSON字符串映射<字符串,字符串>与杰克逊JSON