我有一个接受任意数量的INTEGER参数的方法:pages(int,int...)
此方法是选择PDF文件的某些页面。
预订页面存储为字符串类型,如下所示:
String pages = "1,2,3,6,9";
我想将此字符串作为方法的参数,如下所示:
pages(1,2,3,6,9);
这可以通过流轻松完成:
Stream
.of(commaSeparated.split(","))
.mapToInt(Integer::parseInt)
.toArray();
你可以将它与varargs结合起来得到你想要的东西:
public static void main (String[] args) {
String commaSeparated = "0,1,2,3,4,5,6,7,8,9";
int[] arguments =
Stream
.of(commaSeparated.split(","))
.mapToInt(Integer::parseInt)
.toArray();
pages(arguments);
}
public static void pages(int... numbers) {
System.out.println("numbers: " + Arrays.toString(numbers));
}
输出将是:
numbers: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
注意:当然在这种特定情况下不需要varargs,只有当你打算用可变数量的int
参数调用相同的方法时它才有用,否则你只需将它的签名改为pages(int[] numbers)
即可。
做这个 :
public class Test {
public static void main(String..args) {
String pages = "1,2,3,6,9";
String[] pagesArr = pages.split(",");
pages(pagesArr);
}
static void pages(String... pagesArr) {
int[] array = Arrays.asList(pagesArr).stream().mapToInt(Integer::parseInt).toArray();
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}