gpt4 book ai didi

java - 如何将小于号放入 ChoiceFormat 模式中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:55:46 26 4
gpt4 key购买 nike

我有一条消息要放入 HTML 页面,我希望它对打印的内容数量敏感。 java.text.ChoiceFormat去救援,对吧?

text.messages=You have {0,choice,1#<b>one</b> message|1<<b>{0}</b> messages} waiting for you

这会导致 ChoiceFormat 中出现错误的构造函数:

 java.lang.IllegalArgumentException: Choice Pattern incorrect: 1#<b>one</b> message|1<'<b>'{0}'</b>' messages

我已将问题缩小到 <消息中的符号。没问题:我会使用 MessageFormat的引用功能来解决这个问题:

text.messages=You have {0,choice,1#'<b>'one'</b>' message|1<'<b>'{0}'</b>' messages} waiting for you

不幸的是,这也失败了:

java.lang.IllegalArgumentException: Choice Pattern incorrect: 1#<b>one</b> message|1<''<b>''{0}''</b>'' messages

请注意错误消息中的单引号字符(MessageFormat 的转义字符)是如何加倍的。我觉得我很接近,但我似乎找不到任何解释如何使用特殊字符的文档,如 <ChoiceFormat模式。

这是我在失败时得到的完整堆栈跟踪:

Caused by: java.lang.IllegalArgumentException: Choice Pattern incorrect: 1#''<b>''one''</b>'' message|1<''<b>''{0}''</b>'' messages
at java.text.MessageFormat.makeFormat(MessageFormat.java:1519)
at java.text.MessageFormat.applyPattern(MessageFormat.java:479)
at java.text.MessageFormat.<init>(MessageFormat.java:362)
at org.apache.struts.util.MessageResources.getMessage(MessageResources.java:305)
at org.apache.velocity.tools.struts.MessageTool.get(MessageTool.java:158)
at org.apache.velocity.tools.struts.MessageTool.get(MessageTool.java:125)
at org.apache.velocity.tools.struts.MessageTool.get(MessageTool.java:192)
[...]

最佳答案

你走在正确的轨道上,但没有引用所有的:

text.messages=You have {0,choice,1#'<b>'one'</b>' message|1<'<b>'{0}'</b>' messages} waiting for you

或者:

text.messages=You have {0,choice,1#'<b>one</b> message'|1<'<b>'{0}'</b> messages'} waiting for you

关于java - 如何将小于号放入 ChoiceFormat 模式中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35044695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com