2008-09-28 8 views
3

En python, vous pouvez utiliser un tuple dans une instruction d'impression formatée et les valeurs de tuple sont utilisées aux positions indiquées dans la chaîne formatée. Par exemple:Fonctionnalité printf Java pour les collections ou les tableaux

>>> a = (1,"Hello",7.2) 
>>> print "these are the values %d, %s, %f" % a 
these are the values 1, Hello, 7.200000 

Existe-t-il un moyen d'utiliser un tableau ou une collection dans une instruction java printf d'une manière similaire?

J'ai regardé le documentation et il semble avoir intégré le support pour certains types comme le calendrier, mais je ne vois rien pour les collections. Si ce n'est pas le cas dans java, y a-t-il un idiome java qui serait utilisé dans un cas comme celui-ci où vous remplissez des collections et ensuite imprimez les valeurs de plusieurs collections en utilisant une chaîne de format)?

Répondre

12

printf aura une déclaration sur les lignes de:

public PrintString printf(String format, Object... args); 

... signifie la même que []. La différence ... permet à l'appelant d'omettre explicitement la création d'un tableau. Considérons donc:

out.printf("%s:%s", a, b); 

qui est l'équivalent de:

out.printf("%s:%s", new Object[] { a, b }); 

Donc, pour revenir à votre question, pour un tableau, vous pouvez simplement écrire:

out.printf("%s:%s", things); 

Pour une collection :

out.printf("%s:%s", things.toArray()); 
Questions connexes