2

我有一个如下的字符串。

ABC {A WELL-KNOWN MAGICIAN} 将在 {0} 表演 {1} 小时。

第一对花括号没有占位符。当我将此字符串传递给 MessageFormat.format(String, Object[]) 方法时,对象数组包含两个字符串以替换占位符 {0} 和 {1},我收到以下错误。

java.lang.IllegalArgumentException:所有参数标识符必须是非负数或遵循模式 ([:ID_Start:] [:ID_Continue:]*) 的字符串。

似乎正在为第一个占位符解析第一对大括号,并且由于它不是有效的占位符,因此会发生错误。

如何告诉 MessageFormat.format 忽略第一对花括号并与另外两个一起使用?

4

1 回答 1

8

在您不想被视为参数占位符的部分周围放置一对单引号。IE

ABC '{A WELL-KNOWN MAGICIAN}' WILL PERFORM AT {0} FOR {1} HOURS.
于 2014-05-04T10:33:56.717 回答