在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语句中使用任何数组或集合?
我查看了documentation,它似乎内置了对某些类型的支持,例如日历,但我没有看到任何集合。
如果在java中没有提供,那么在这样的情况下是否会使用任何java习惯用法来填充集合,然后使用一个格式字符串打印多个集合中的值(除了嵌套循环之外) ?
答案 0 :(得分:12)
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());
答案 1 :(得分:2)
您可能也会对MessageFormat课感兴趣。