Y a-t-il une différence entre quatre manières de formater les mêmes données?
4 Réponses :
une invocation de cette méthode de la forme p>
se comporte exactement de la même manière que l'invocation p>
SO 1 & 2 sont les mêmes qu'il n'y a aucune différence B / /
et 3 et 4 ont presque la même chose que la différence de temps de compilation sera présentes si comparées à 1 et 2. P> system.out code> est un imprimanteam code> pour le détail Suivez ce lien: Détails sur divers formats P>
out.printf (locale L, format de chaîne, objet ... args) code> p>
out.format (locale L, format de chaîne, objet ... args) code> p>
prendre en compte que string.format () code> appels nouveau format (). Format () code> et imprimeur.printf () code> appelle presque le même il ne devrait y avoir aucune différence. p>
system.out.printf () code>, system.out.format () code> sont des méthodes de imprimanteam code>. Ils sont équivalents. p>
printf () code> affiche simplement la chaîne nouvellement formatée sur system.out code>, tandis que format () code> retourne une nouvelle chaîne formatée. < / p>
Les deux premiers sont exactement identiques, car Les deux derniers sont aussi exactement identiques, car Enfin, le 2e et le 4ème sont plus ou moins identiques, comme on peut le voir à partir de la mise en œuvre de printf code> est mis en œuvre comme ( source ) xxx pré> string.format code> est implémenté comme ( source ) p> PrintStream .format code> ( source ). Sous la hotte, cela crée également un nouveau
formateur code> (si nécessaire) et appelle format code> sur ce format code>. p> public PrintStream format(String format, Object ... args) {
try {
synchronized (this) {
ensureOpen();
if ((formatter == null)
|| (formatter.locale() != Locale.getDefault()))
formatter = new Formatter((Appendable) this);
formatter.format(Locale.getDefault(), format, args);
}
} catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
} catch (IOException x) {
trouble = true;
}
return this;
}