"Bad argument syntax" 使用 MessageFormat

"Bad argument syntax" with MessageFormat

我得到了这个 html 语法,它充满了 MessageFormat:

的帮助
private final String WRAPPABLE_HTML = "<html><head>"
        + "<style>div:after{text-decoration: line-through;}"
        + "</style></head>"
        + "<body style='width:{0}px;margin: 0 auto;'><div>{1}</div>{2}</body></html>";

如果我打电话:

MessageFormat.format(
              WRAPPABLE_HTML, 200, lCat,lDog);

我得到:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Bad argument syntax: text-decoration: lin ...
at com.ibm.icu.text.MessagePattern.parseArg(MessagePattern.java:1106)
at com.ibm.icu.text.MessagePattern.parseMessage(MessagePattern.java:1042)

没有 style 部分一切正常。 我是否在 style 属性中使用了任何 keyword

谢谢你的帮助。

斯蒂芬

你应该转义大括号:

private final String WRAPPABLE_HTML = "<html><head>"
        + "<style>div:after'{'text-decoration: line-through;'{'"
                            ^                                ^
        + "</style></head>"
        + "<body style='width:{0}px;margin: 0 auto;'><div>{1}</div>{2}</body></html>";