如何在固定字符串格式的String.format中添加换行符(\n)?

12
在下面的代码中,message是一个包含\n的最终字符串,但它不起作用。
message = format = "Blah %d Blah Blah \nBlah Blah %s Blah"
interventionSize = number
UserID = String
String.format(Dic.message,interventionSize,userID)

我该怎么样才能在这种情况下进行换行,找不到答案。

顺便说一下,我不能使用任何框架或外部 jar 来做到这一点(旧代码),必须使用纯 Java。


5
“does not work”是什么意思?您是否收到了错误消息?您的输出是什么? - Paŭlo Ebermann
确实,你是对的... 问题在于这一行没有换行,我只得到了一条巨大的线而不是两条。 - Cristiano Fontes
我的猜测是:你正在将字符串输出到 HTML。HTML 不关心 \n,它只关心 <BR> - Joachim Sauer
2个回答

39

在格式化字符串中使用\n是可以的。

也许你应该尝试使用特定于平台的换行符。在格式化字符串中,你可以使用%n

也就是说,请尝试以下内容:

String.format(Dic.message.replace("\\n", "%n"), interventionSize, userId);

这个工作得很好!谢谢。我会尽快将您标记为最佳答案! - Cristiano Fontes

2

或者您可以使用System.lineSeparator()。 这将确保平台独立性。 如果您使用1.7之前的JDK,则为System.getProperty(“line.separator”);

代码如下:

String.format(Dic.message.replace("\\n", System.lineSeparator()), interventionSize, userId);  

或者这样做(适用于1.7之前的JDK):
String.format(Dic.message.replace("\\n", System.getProperty("line.separator")), interventionSize, userId);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接