我已将一些消息存储在资源包中。我正在尝试按如下方式格式化这些消息。
import java.text.MessageFormat;
String text = MessageFormat.format("You're about to delete {0} rows.", 5);
System.out.println(text);
假设第一个参数(即实际消息)存储在以某种方式检索的属性文件中。
第二个参数,即 5 是一个动态值,应放置在占位符中{0}
但这不会发生。下一行打印,
您将要删除 {0} 行。
占位符不会替换为实际参数。
这里是撇号——You're
。我像往常一样尝试逃避它You\\'re
虽然没用。需要进行哪些更改才能使其发挥作用?
添加额外的撇号'
to the MessageFormat
图案String
以确保'
显示字符
String text =
java.text.MessageFormat.format("You''re about to delete {0} rows.", 5);
^
撇号(又名单引号MessageFormat 模式中的 ) 开始一个带引号的字符串,并且不会单独解释。来自javadoc http://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html
单引号本身必须在整个字符串中由双单引号 '' 表示。
The String
You\\'re
相当于添加一个反斜杠字符String
所以唯一的区别是You\re
将产生而不是Youre
。 (在双引号解决方案之前''
应用)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)