Могу ли я избежать фигурных скобок в 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,'}'для закрывающей скобки и''для закрытия цитаты.