Quelle est la différence entre MessageFormat.format
et String.format
dans JDK 1.5?
En termes simples, la principale différence réside dans le format de la chaîne:
MessageFormat.format()
la chaîne de format accepte les positions d'argument (par exemple {0}
, {1}
). Exemple:
"This is year {0}!"
Le développeur n'a pas à se soucier des types d'arguments, car ils sont, le plus souvent, reconnus et formatés selon le Locale
actuel.
String.format()
la chaîne de format accepte les spécificateurs de type d'argument (par exemple %d
pour les nombres, %s
pour les chaînes). Exemple:
"This is year %d!"
String.format()
vous donne généralement beaucoup plus de contrôle sur la façon dont l'argument est affiché grâce aux nombreuses options que vous pouvez spécifier avec le spécificateur de type. Par exemple, la chaîne de format "%-6.2f"
Spécifie d'afficher un nombre à virgule flottante aligné à gauche avec min. largeur 6 caractères et précision de 2 décimales.
Jetez un œil à javadoc des deux méthodes pour en savoir plus.
String.format est juste un raccourci vers Formatter , c'est un formateur "printf-style". De l'autre côté, MessageFormat utilise une convention de mise en forme différente, comme décrit dans la documentation liée.
Utilisez le premier "pour la justification et l'alignement de la mise en page, les formats courants pour les données numériques, de chaîne et de date/heure et la sortie spécifique aux paramètres régionaux" et le second "pour produire des messages concaténés de manière indépendante de la langue" .