%s dans la Chaîne.format pour les nombres
Est-il une raison de ne pas utiliser %s
pour le spécificateur de format lors de la mise en forme des nombres supplémentaire pour une mise en forme est nécessaire?
par exemple
int answer = 42;
String text = String.format("The answer is %s", answer);
plutôt que les habituels:
int answer = 42;
String text = String.format("The answer is %d", answer);
La raison pour laquelle je te demande, c'est que je veux faire quelques automatisé des modifications au code source, et il ne serait pas pratique d'avoir à déterminer si le type de answer
est int
ou String
ou quelque chose d'autre
Vous devez vous connecter pour publier un commentaire.
Je m'attends à ce qu'il y ait une différence de potentiel en termes de séparateurs de milliers et d'autres paramètres régionaux d'options spécifiques. La première approche est voué à l'appel
Integer.toString
(ce qui n'est pas sensibles aux paramètres régionaux) parce queInteger
ne pas mettre en œuvreFormattable
. La deuxième va utiliser potentiellement sensibles aux paramètres régionaux entier formatage - il pourrait insérer des séparateurs de milliers, peut-être même utiliser un ensemble différent de chiffres etc.De regarder les docs de plus près, il semble comme les séparateurs de ne pas être appliquée sans une mise en forme spécifique drapeau, mais:
Échantillon, où il fait une différence:
String.format(new Locale("hi", "IN"), "%d", 1234)
, il produit१२३४
.new Locale("th", "TH", "TH"), "%d", 1234)
produit๑๒๓๔
."The answer is " + answer
àString.format("The answer is %d", answer)
est un changement de comportement, mais de la modifier àString.format("The answer is %s", answer)
n'est-ce pas?