printf()使用array作为参数。有可能吗?

时间:2016-10-15 12:55:24

标签: java arrays printf

我只是想知道是否可以在printf()中使用一个数组作为参数而不是几个参数?

说出来:

String[] strArr = {"Name","Address", "Mobile"};

//text = () -> strArr.getNext(); 

System.out.printf("%1$s %1$10s %1$10s", text);

我觉得应该可以。

3 个答案:

答案 0 :(得分:2)

根据我的评论,System.out.printf("%1$s %2$10s %3$10s", strArr);可行。

但另一种选择是使用Java 8的流,可以使用java.util.Arrays.stream(...)从您的阵列中获取。例如:

Arrays.stream(strArr).forEach(e -> System.out.printf("%-15s", e));

答案 1 :(得分:1)

如果要替换:

onclick='newinfo( ' . $gr_display['id'] . ' )'>

通过

System.out.printf("%1$s %2$10s %2$10s", "p1" "p2", "p3");

有可能,因为java威胁多个参数作为数组

Can I pass an array as arguments to a method with variable arguments in Java?

答案 2 :(得分:0)

您可以使用Arrays.toString(Object[] a)作为javadoc说:

public static String toString(Object[] a)

返回指定数组内容的字符串表示形式。如果数组包含其他数组作为元素,则它们将从Object继承的Object.toString()方法转换为字符串,该方法描述其身份而不是其内容。

此方法返回的值等于Arrays.asList(a).toString()返回的值,除非a为null,在这种情况下" null"归还。