Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MessageFormat的Pattern.quote()等效于什么?_Java_Messageformat - Fatal编程技术网

Java MessageFormat的Pattern.quote()等效于什么?

Java MessageFormat的Pattern.quote()等效于什么?,java,messageformat,Java,Messageformat,今天,我在使用Spring时遇到了以下代码的问题: String tabTitle = messageSource.getMessage(tabName, new Object[] {}, tabName, locale) 这用于获取站点顶部一系列选项卡的显示标题(的一个实例)。问题是,如果tabName包含一个引号,它会自动从结果中删除。例如,午餐吃什么变成了午餐吃什么 我已经找到了原因,这是因为该方法中的第三个参数应该是中指定的格式。需要2个单引号 因为我们没有使用该格式传递任何参数,所以

今天,我在使用Spring时遇到了以下代码的问题:

String tabTitle = messageSource.getMessage(tabName, new Object[] {}, tabName, locale)
这用于获取站点顶部一系列选项卡的显示标题(的一个实例)。问题是,如果
tabName
包含一个引号,它会自动从结果中删除。例如,
午餐吃什么
变成了
午餐吃什么

我已经找到了原因,这是因为该方法中的第三个参数应该是中指定的格式。需要2个单引号


因为我们没有使用该格式传递任何参数,所以我可以在将其作为第三个参数传递之前,安全地转义
选项卡名称中的任何特殊字符。我可以手动将这里的单引号替换为2个单引号,但我真正想要的是类似于
Pattern.quote()
,仅适用于
MessageFormat
语言,这将保证处理所有转义。有类似的东西存在吗?

没有任何方法,但是用ASCII单引号字符封装整个文本将完成同样的任务。您可以执行
→ <代码>'
替换,如您所述,然后用
'
环绕文本。从:

例如,模式字符串
“{'}'”
被解释为
{/code>(引用开始和左大括号)、
'
(单引号)和
}
(右大括号和引用结束)的序列,而不是
{'
'}
(引用的左大括号和右大括号):表示字符串
“{}”“
,而不是
”{}”


没有,但您可以安全地执行
→ <代码>''
替换,然后用单引号将整个内容括起来。即使在单引号文本中,双引号也能正确解释。谢谢,如果你把这个作为答案,我会接受的。