我只是想知道是否可以在printf()中使用一个数组作为参数而不是几个参数?
说出来:
String[] strArr = {"Name","Address", "Mobile"};
//text = () -> strArr.getNext();
System.out.printf("%1$s %1$10s %1$10s", text);
我觉得应该可以。
答案 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"归还。