我有一个如下字符串。
ABC {一位知名的魔术师}将在{0}的{1}小时内进行表演。
第一对花括号没有占位符。当我将此字符串传递给MessageFormat.format(String,Object [])方法时,如果对象数组包含两个字符串以替换占位符{0}和{1},则会出现以下错误。
java.lang.IllegalArgumentException:所有参数标识符必须是非负数或模式后面的字符串([:ID_Start:] [:ID_Continue:] *)。
第一个占位符似乎正在解析第一对大括号,因为它不是有效的占位符,所以会发生错误。
如何告诉MessageFormat.format忽略第一对花括号并与其他两个花括号一起工作?
答案 0 :(得分:7)
在您不希望被视为参数占位符的部分周围放置一对单引号。即。
ABC '{A WELL-KNOWN MAGICIAN}' WILL PERFORM AT {0} FOR {1} HOURS.