java - 使用 %n 作为新行
问题描述
正如这篇文章中所推荐的那样:
https ://stackoverflow.com/a/38077906/12340711
最好使用 %n 作为独立于操作系统的换行符而不是 \n 并且比使用 System.lineSeparator() 更容易
但是,该功能对我不起作用:
\n
:
System.out.println("foo\nbar");
>>>foo
>>>bar
正常工作。
%n
:
System.out.println("foo%nbar");
>>>foo%nbar
不解释。
有人可以解释一下为什么%n
不适合我吗?它可能不再受支持还是我错过了什么?
解决方案
Java 为您提供System.lineSeparator()
常量。如果您使用println
. \n
如果您只是在玩代码,也可以在字符串中使用来换行。它既简单又快速。请注意,println
只是将纯文本打印到控制台。
当您使用时printf
,您实际上将在控制台输出之前java.util.Formatter
使用 a来格式化字符串。可以在(Java 8 文档链接)找到所有详细信息: https ://docs.oracle.com/javase/8/docs/api/java/util/Formatter.htmljava.util.Formatter
因此,如果要使用 格式化字符串println
,则需要先使用以下内容对其进行格式化java.util.Formatter
:
String formattedStr = String.format("%s = %d %n hello", "joe", 35);
System.out.println(formattedStr);
where%s
是一个字符串,%d
是一个整数和%n
一个换行符(在上面的文档链接中描述)。
printf
只是上面两行代码的快捷方式,其中String.format
已经在内部printf
实现。
System.out.printf("%s = %d %n hello", "joe", 35);
您还可以\n
在printf
字符串中使用:
System.out.printf("%s = %d \n hello", "joe", 35);
最后,重要的是你要明白,在现实世界的项目中,如果你不使用 a (in a , use ) ,你应该总是System.lineSeparator()
使用它。此外,您永远不应该将其用于实际项目。请改用日志框架。\n
java.util.Formatter
Formatter
%n
System.out.*
推荐阅读
- php - PHP复选框显示和更新
- python - 如何在绘图中创建滚动条?
- vue.js - 我有一个来自后端的图像,并且我在该图像上绘制了框,但我无法在我想要的特定点上绘制它们
- here-api - HERE API 自动完成国家代码 ISO Alpha 2
- reactjs - Reactivesearch & Reactivemaps 搜索路由
- sql - 在 SQL Visual Studio 上过滤日期
- c++ - 以编程方式在 OSX 中抓取屏幕截图并转换为 OpenCV Mat
- ios - 在 macOS Catalina(Catalyst 应用程序)上未收到静默推送通知(背景)
- flutter - 如何将点击传播到 Flutter 中手势检测器的子节点?
- cypress - 赛普拉斯和 Excel 测试数据