在python中,您可以在格式化的print语句中使用元组,并且在格式化字符串中的指示位置使用元组值.例如:
>>> 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());