集合或者数组的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类感兴趣。