2010-06-20 8 views

Répondre

20

Le first one écrit dans le stdout et le second one renvoie un objet String.

Lequel utiliser dépend du seul but. Si vous voulez afficher la chaîne dans la sortie standard (console), utilisez le premier. Si vous souhaitez obtenir un handle de la chaîne formatée à utiliser plus loin dans le code, utilisez la seconde.

1

String.format formats, ne les affiche pas. Je pense que vous voulez dire System.out.println(String.format("......", ....)) ou une construction similaire?

1

String.format renvoie une chaîne formatée. System.out.printf imprime également la chaîne formatée.

8

String.format renvoie une nouvelle chaîne, tandis que System.out.printf affiche simplement la chaîne nouvellement formatée System.out, parfois appelée console.

Ces deux extraits de code sont fonctionnellement équivalents:

String formattedString = String.format("%d is my favorite number", 42); 
System.out.print(formattedString); 

et

System.out.printf("%d is my favorite number", 42); 
+6

Même si ce post est vraiment vieux, je veux juste ajouter une chose à votre réponse: Les deux extraits ne sont pas exactement équivalents. System.out.printf n'insère pas de nouvelle ligne. – thecoder16

+0

J'ai essayé les deux mais il semble que ni printf ni le format insère une nouvelle ligne –

+0

@SKumar Correct, mais 'thecoder16' fait référence à l'utilisation de 'println' de Greg, qui, lors de l'impression d'une chaîne, imprime cette chaîne puis termine la ligne en ajoutant un séparateur de ligne (essentiellement une nouvelle ligne). L'utilisation de 'printf' ne fonctionne pas, pas plus que la méthode' .format'. –

1

Ces deux méthodes présentent exactement le même comportement. Nous pouvons utiliser le format (...) avec String, Java.util.Formatter (J2SE 5) et aussi avec PrintWriter.