我有一个可以接受任意数量的INTEGER参数的方法:
pages(int,int...)
此方法是选择PDF文件的某些页面。
以如下字符串类型存储的书页:
String pages = "1,2,3,6,9";
我希望将此字符串作为方法的参数,看起来像:
pages(1,2,3,6,9);
答案 0 :(得分:3)
这可以很容易地通过流完成:
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
参数调用同一方法时,它才有用,否则您可以将其签名更改为{{ 1}}。
答案 1 :(得分:1)
执行此操作:
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]);
}
}
}