Могу ли я избежать фигурных скобок в Java MessageFormat?
Я хочу вывести некоторые фигурные скобки в Java MessageFormat. Например я знаю, что следующее не работает:
MessageFormat.format(" public {0} get{1}() {return {2};}nn", type, upperCamel, lowerCamel);
есть ли способ избежать скобок, окружающих " return {2}"?
4 ответа:
вы можете поместить их в одиночные кавычки, например,
'{'return {2};'}'
посмотреть здесь для более подробной информации.
Вау. Сюрприз! Документация для MessageFormat знает ответ:
внутри строка,
"''"
представляет собой одинарная кавычка. А QuotedString может содержат произвольные символы, кроме одинарные кавычки; окружающий сингл кавычки удаляются. Ан UnquotedString может содержать произвольные символы кроме одинарных кавычек и левой фигурной скобки. Таким образом, строка должна в результате форматированное сообщение"'{0}'"
можно записать как"'''{'0}''"
или"'''{0}'''"
.
используйте одинарные кавычки:
MessageFormat.format(" public {0} get{1}() '{'return {2};'}'\n\n", type, upperCamel, lowerCamel);
если вы хотите на самом деле использовать одна цитата, просто удвоить его. Элемент JavaDoc для
MessageFormat
дает этот несколько более сложный пример:таким образом, строка, которая должна привести к отформатированное сообщение
"'{0}'"
может быть написано как"'''{'0}''" or "'''{0}'''"
.это
''
для одной кавычки, то'{'
для сбежавшей скобки, тогда0
,'}'
для закрывающей скобки и''
для закрытия цитаты.