Ответ 1
Вы можете поместить их в одинарные кавычки, например,
'{'return {2};'}'
Смотрите здесь для более подробной информации.
Я хочу вывести некоторые фигурные скобки в java MessageFormat. Например, я знаю, что следующее не работает:
MessageFormat.format(" public {0} get{1}() {return {2};}\n\n", type, upperCamel, lowerCamel);
Есть ли способ избежать скобок вокруг "return {2}"?
Вы можете поместить их в одинарные кавычки, например,
'{'return {2};'}'
Смотрите здесь для более подробной информации.
Ого. Сюрприз! Документация для MessageFormat знает ответ:
Внутри String
"''"
представляет собой одиночная кавычка. Функция 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
, '}'
для закрывающей фигурной скобки и ''
для закрывающей цитаты.
System.out.println(MessageFormat.format("I want to see ticks and curly braces around '''{'{0}'}'''", "this"));
вы можете использовать это регулярное выражение с perl или любым другим языком, чтобы убрать фигурные скобки и одинарные кавычки (x27). Это не касается какого-либо заполнителя, например {0}
:
echo "# 'single' quote test \n\n public {0} get{1}() {return {2};}\n\n" | perl -pe 's/\x27/\x27\x27/g; s/\{([^0-9])/\x27\{\x27$1/g; s/([^0-9])\}/$1\x27\}\x27/g'