集合或数组的Java printf功能

Jas*_*son 3 java collections printf

在python中,您可以在格式化的print语句中使用元组,并且在格式化字符串中的指示位置使用元组值.例如:

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

有没有办法以类似的方式在java printf语句中使用任何数组或集合?

我查看了文档,似乎内置了对某些类型的支持,例如Calendar,但我没有看到任何集合.

如果在java中没有提供这个,那么在这样的情况下是否会使用任何java习惯用法来填充集合,然后使用一个格式字符串打印多个集合中的值(除了嵌套循环之外)?

Tom*_*ine 12

printf将有一个声明:

public PrintString printf(String format, Object... args);
Run Code Online (Sandbox Code Playgroud)

...意思与...大致相同[].区别在于...允许调用者省略显式创建数组.所以考虑:

    out.printf("%s:%s", a, b);
Run Code Online (Sandbox Code Playgroud)

这相当于:

    out.printf("%s:%s", new Object[] { a, b });
Run Code Online (Sandbox Code Playgroud)

所以,回到你的问题,对于一个数组,你可以写:

    out.printf("%s:%s", things);
Run Code Online (Sandbox Code Playgroud)

对于集合:

    out.printf("%s:%s", things.toArray());
Run Code Online (Sandbox Code Playgroud)