Como passar uma cadeia com vírgula separados valores como parâmetros de função em Java

Isam H. Abuaqlain:

Eu tenho um método que aceita qualquer número de parâmetros inteiros: pages(int,int...)

Este método é selecionar algumas páginas do arquivo PDF.

Páginas do livro armazenadas como um tipo de cadeia como este:

String pages = "1,2,3,6,9";

Eu quero fazer essa string como o parâmetro do método para se parecer com:

pages(1,2,3,6,9);
barra invertida:

Isso pode ser feito facilmente com correntes:

Stream
  .of(commaSeparated.split(","))
  .mapToInt(Integer::parseInt)
  .toArray();

Você pode combinar isso com varargs para obter o que deseja:

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));
}

Saída será:

numbers: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Nota: é claro varargs não é necessário neste caso específico, é útil somente se você pretende chamar o mesmo método com um número variável de intargumentos, caso contrário, você pode simplesmente mudar a sua assinatura para pages(int[] numbers).

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=118335&siteId=1
Recomendado
Clasificación