Ste*_*man 61 java escaping messageformat
我想在java MessageFormat中输出一些大括号.例如,我知道以下不起作用:
MessageFormat.format("  public {0} get{1}() {return {2};}\n\n", type, upperCamel, lowerCamel);
有没有办法逃避围绕"返回{2}"的大括号?
Bri*_*new 91
你可以将它们放在单引号内,例如
'{'return {2};'}'
有关详细信息,请参见此处
Bom*_*mbe 16
哇.惊喜!MessageFormat的文档知道答案:
在String中,
"''"表示单引号.甲QuotedString可以包含除单引号的任意字符; 周围的单引号被删除.一个UnquotedString 可以包含除单引号和左大括号的任意字符.因此,应该导致格式化消息的字符串"'{0}'"可以写为"'''{'0}''"或"'''{0}'''".
Jon*_*eet 12
使用单引号:
MessageFormat.format("  public {0} get{1}() '{'return {2};'}'\n\n",
                     type, upperCamel, lowerCamel);
如果你想实际使用单引号,只需加倍.在对JavaDoc中MessageFormat给出了这个有些复杂的例子:
因此,应该将格式化消息的字符串
"'{0}'"写为"'''{'0}''" or "'''{0}'''".
这是''一个单引号,然后'{'进行转义括号,然后0,'}'在右括号,并''在右引号.