Le Format d'un message à l'aide de MessageFormat.format() en Java
Je l'ai stocké quelques messages dans un regroupement de ressources. Je suis en train de format de ces messages comme suit.
import java.text.MessageFormat;
String text = MessageFormat.format("You're about to delete {0} rows.", 5);
System.out.println(text);
Supposer que le premier paramètre que j'.e le message est stocké dans un fichier de propriétés qui est en quelque sorte récupéré.
Le deuxième paramètre-je.e 5 est une valeur dynamique et devrait être placé dans l'espace réservé {0}
qui n'arrive pas. La ligne suivante imprime,
Vous êtes sur le point de supprimer {0} lignes.
L'espace réservé n'est pas remplacé par le paramètre réel.
C'est l'apostrophe ici - You're
. J'ai essayé d'y échapper, comme d'habitude, comme You\\'re
même si cela n'a pas fonctionné. Quels sont les changements nécessaires pour le faire fonctionner?
Vous devez vous connecter pour publier un commentaire.
Ajouter une apostrophe
'
à laMessageFormat
modèleString
pour assurer la'
caractère est affichéUne apostrophe (aka apostrophe) dans un MessageFormat pattern commence une chaîne de caractères entre guillemets et n'est pas interprété sur son propre. À partir de la javadoc
La
String
You\\'re
est équivalent à l'ajout d'une barre oblique à laString
donc, la seule différence sera queYou\re
sera produite plutôt que deYoure
. (avant le guillemet double solution''
appliquée)Juste être sûr que vous avez utilisé la double apostrophe (")
Edit:
Source http://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html
Vous avez besoin pour utiliser la double apostrophe au lieu d'une seule dans le "Vous"re", par exemple:
Pour tout le monde qui a Android des problèmes dans la string.xml, utilisez \'\' au lieu de l'apostrophe.
À l'aide d'une apostrophe
’
(Unicode:\u2019
) au lieu d'un seul devis'
résolu le problème sans le doublement de la\'
.