Mak*_*kky 5 java messageformat java-8
我有String模板
xxxxxxxx xxxxx-xx: [{0}] xxxxxxx xxxxx xxxxxx xxxxxx [{1}] xxxxxx xxxx xxxxx'x xxxxx xxxxxx xxxx [{2}]
Run Code Online (Sandbox Code Playgroud)
即使我提供的所有三个参数仍然不起作用
public static void main(String[] args) {
String s = "xxxxxxxx xxxxx-xx: [{0}] xxxxxxx xxxxx xxxxxx xxxxxx [{1}] xxxxxx xxxx xxxxx'x xxxxx xxxxxx xxxx [{2}]";
System.out.println(MessageFormat.format(s,"1","2","3"));
}
Run Code Online (Sandbox Code Playgroud)
输出是:
xxxxxxxx xxxxx-xx: [1] xxxxxxx xxxxx xxxxxx xxxxxx [2] xxxxxx xxxx xxxxxx xxxxx xxxxxx xxxx [{2}]
Run Code Online (Sandbox Code Playgroud)
看输出,它输出{2}
而不是3
,我找不到为什么它不工作.这是一个错误还是我遗失了什么?
您的问题在于单引号'
必须使用double ''
而不是one:
xxxxx''x
Run Code Online (Sandbox Code Playgroud)
阅读有关单引号的文档(MessageFormat)
在String中,一对单引号可用于引用除单引号之外的任何任意字符.例如,模式字符串"'{0}'"表示字符串"{0}",而不是FormatElement.单引号本身必须在整个String中用双引号引用''.例如,模式字符串"'{''}'"被解释为'{(引用开始和左大括号),'(单引号)和}'(右大括号和结束)的序列引用),而不是'{'和'}'(引用左右花括号):表示字符串"{'}",而不是"{}".
归档时间: |
|
查看次数: |
543 次 |
最近记录: |