【问题标题】:Difference between %n and \n for printing a new line in Java [duplicate]在 Java 中打印新行的 %n 和 \n 之间的区别 [重复]
【发布时间】:2015-08-13 06:38:54
【问题描述】:

Java 的文档指定使用 %n 而不是 \n 作为换行符。

根据Oracle JavaSE Number documentation

适用于运行应用程序的平台的换行符。您应该始终使用 %n,而不是 \n。

两者之间的显着区别是什么?

【问题讨论】:

  • 只是java对流
  • 这个问题已经回答了:stackoverflow.com/questions/1883345/…
  • 检查上一页。讨论...stackoverflow.com/questions/1883345/…
  • 谢谢。链接
  • 顺便说一句,“你应该总是使用 %n”是真的误导,IMO。如果要使用特定于平台的换行符,则应使用 %n ......但情况并非总是如此 - 通常您正在为网络协议或需要特定换行符的文件格式格式化数据。此处草率的文档,IMO。

标签: java


【解决方案1】:

%n 可以在各种平台之间移植,%n 发出的值将适合底层平台,而\n 发出的值对于所有平台都是相同的。

\n 是基于 Unix 系统的正确换行符,其他系统可能使用不同的字符来表示行尾。

Windows系统使用\r\n,早期的MacOS系统使用\r

【讨论】:

  • 我想说这恰恰相反 - 当您使用 %n 时发出的字符取决于平台(它们因平台而异),而 \n总是 发射 U+000A。现在可能是您希望您的代码依赖于平台,因此它会为您的平台发出惯用的换行符 - 但我认为说它独立于平台是不公平的。
  • %n 的用法可以在多个平台之间移植,因此它在用户方面独立于平台。
  • 当有人告诉我某些东西是“平台无关的”时,我的想法不是这样 - 这表明它的行为与平台相同不管。我认为如果您删除第一段,您的答案可能会更好。
  • hmm..如果它是一个发出文本内容的 API 怎么办?
【解决方案2】:

%n 是格式化字符串中换行符(可能是 \r\n 或 \n)的特殊代码(占位符),而 \n 是实际符号。

您可以将 %n 视为将在结果字符串中替换为 \r\n 或 \n 的符号。

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 2011-05-29
    • 2012-11-12
    • 2019-01-28
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多