I want to output some braces in a java MessageFormat. For example I know the following does not work:
MessageFormat.format(" public {0} get{1}() {return {2};}\n\n", type, upperCamel, lowerCamel);
Is there a way of escaping the braces surrounding "return {2}"?
You can use the \Q and \E special characters... anything between \Q and \E is automatically escaped.
To escape curly braces and interpolate a string inside the String. format() method use triple curly braces {{{ }}} . Similarly, you can also use the c# string interpolation feature instead of String.
You can put them inside single quotes e.g.
'{'return {2};'}'
See here for more details.
Wow. Surprise! The documentation for MessageFormat knows the answer:
Within a String,
"''"
represents a single quote. A QuotedString can contain arbitrary characters except single quotes; the surrounding single quotes are removed. An UnquotedString can contain arbitrary characters except single quotes and left curly brackets. Thus, a string that should result in the formatted message"'{0}'"
can be written as"'''{'0}''"
or"'''{0}'''"
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With