Java printf Funktionalität für Sammlungen oder Arrays
-
02-07-2019 - |
Frage
In Python können Sie ein Tupel in einer formatierten print-Anweisung verwenden und die Tupel-Werte werden an den angegebenen Positionen in der formatierten Zeichenfolge verwendet. Zum Beispiel:
>>> a = (1,"Hello",7.2)
>>> print "these are the values %d, %s, %f" % a
these are the values 1, Hello, 7.200000
Gibt es eine Möglichkeit, jede Anordnung oder Sammlung in einer Java printf-Anweisung in einer ähnlichen Art und Weise zu benutzen?
Ich habe an dem Dokumentation und es scheint für einige Arten wie Kalender zur Unterstützung gebaut haben, aber ich sehe nichts für Sammlungen.
Wenn dies nicht in Java zur Verfügung gestellt wird, gibt es ein Java-Idiom, das so in einem Fall verwendet werden würde, wo man Sammlungen bevölkern und dann Drucke den Wert von vielen Sammlungen mit einem Format-String (andere als nur verschachtelt Looping) ?
Lösung
printf wird eine Erklärung im Sinne von:
public PrintString printf(String format, Object... args);
... bedeutet soviel wie []
. Der Unterschied ist der Anrufer ermöglicht ...
explizit wegzulassen eine Anordnung zu schaffen. So betrachtet:
out.printf("%s:%s", a, b);
Das ist das Äquivalent von:
out.printf("%s:%s", new Object[] { a, b });
Also, auf Ihre Frage immer wieder, für ein Array, können Sie einfach schreiben:
out.printf("%s:%s", things);
Für eine Sammlung:
out.printf("%s:%s", things.toArray());
Andere Tipps
Sie könnten durch die Message Klasse zu.