集合或者数组的Java printf功能
时间:2020-03-06 14:50:59 来源:igfitidea点击:
在python中,我们可以在格式化的打印语句中使用元组,并且在格式化的字符串中的指定位置使用元组值。例如:
>>> a = (1,"Hello",7.2) >>> print "these are the values %d, %s, %f" % a these are the values 1, Hello, 7.200000
是否可以通过某种方式在java printf语句中使用任何数组或者集合?
我看了看文档,它似乎已经内置了对某些类型的支持,例如Calendar,但是我没有看到任何关于收藏的内容。
如果Java中未提供此功能,那么在填充集合然后使用一种格式字符串(不仅仅是嵌套循环)打印许多集合中的值的情况下,是否会使用任何Java惯用法?
解决方案
printf将具有以下声明:
public PrintString printf(String format, Object... args);
...的含义与[]
大致相同。区别在于...
允许调用者省略显式创建数组的操作。因此请考虑:
out.printf("%s:%s", a, b);
这等效于:
out.printf("%s:%s", new Object[] { a, b });
因此,回到问题,对于数组,我们可以编写:
out.printf("%s:%s", things);
对于收藏:
out.printf("%s:%s", things.toArray());
我们可能也对MessageFormat类感兴趣。