71 votes

Puis-je échapper à croisillons en java MessageFormat?

Je veux à la sortie de certains des accolades en java MessageFormat. Par exemple je sais que le code suivant ne fonctionne pas:

MessageFormat.format("  public {0} get{1}() {return {2};}\n\n", type, upperCamel, lowerCamel);

Est-il un moyen de s'en échapper, les accolades entourant le "return {2}"?

103voto

Brian Agnew Points 143181

Vous pouvez les mettre à l'intérieur des guillemets simples, par exemple

'{'return {2};'}'

Voir ici pour plus de détails.

18voto

Bombe Points 34185

Wow. Surprise! La documentation pour MessageFormat connaît la réponse:

Au sein d'une Chaîne, "''" représente un apostrophe. Un QuotedStringpeut contiennent des caractères arbitraires à l'exception de les guillemets simples; les environs unique les citations sont supprimés. Un UnquotedString peut contenir des caractères arbitraires à l'exception des guillemets simples et gauche bouclés entre parenthèses. Ainsi, une chaîne de résultat dans le message mis en forme "'{0}'" peut être écrite de la "'''{'0}''" ou "'''{0}'''".

13voto

Jon Skeet Points 692016

Utilisez des guillemets simples:

MessageFormat.format("  public {0} get{1}() '{'return {2};'}'\n\n",
                     type, upperCamel, lowerCamel);

Si vous souhaitez utiliser un seul devis, il suffit de double il. La JavaDoc pour MessageFormat donne un peu compliquées exemple:

Ainsi, une chaîne qui devrait aboutir à la le message formaté "'{0}'" peut être écrit comme "'''{'0}''" or "'''{0}'''".

C'est - '' pour une seule candidature, '{' pour une fuite de corset, alors 0, '}' pour l'accolade de fermeture et d' '' pour le cours de clôture.

2voto

victropolis Points 21
System.out.println(MessageFormat.format("I want to see ticks and curly braces around '''{'{0}'}'''", "this"));

-2voto

String sql = "select * from app_Main where primary_Key = upper(\''{0}\'')";
Object [] replacable = {new Integer(0)};

System.out.println(MessageFormat.format(sql, replacable)+"\n");

Utilisez celui-ci, va certainement aider. Merci

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X