3

在 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 语句中使用任何数组或集合?

我查看了文档,它似乎内置了对日历等某些类型的支持,但我没有看到任何集合。

如果在 java 中未提供此功能,是否有任何 java 习惯用法可用于在这种情况下填充集合,然后使用一种格式字符串(而不是仅嵌套循环)打印来自许多集合的值?

4

2 回答 2

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());
于 2008-09-28T18:18:25.313 回答
2

您可能也对MessageFormat类感兴趣。

于 2008-09-28T21:03:06.713 回答