2

У меня есть простой вопрос. Как передать массив целых чисел в качестве аргумента во время запуска java -jar sample.jar. Целочисленный массив - это мой ввод.целочисленный массив как аргументы во время работы java jar

Есть и другие варианты, такие как передача массива в виде разделенных запятыми значений (например, 1,2,3) и преобразование значений строк в виде целочисленного массива в java.

Я хочу знать, есть ли другой вариант. Спасибо за помощь!

ответ

5

Нет, других вариантов нет. Аргументы командной строки просто : передано как текст. Некоторый код, где-то, должен разбирать их в целые числа.

Существуют различные сторонние библиотеки, доступные для синтаксического анализа командной строки, но ваша точка входа, безусловно, будет иметь параметр String[]. Если все вам нужен int[], я бы просто конвертировал каждый String в int. В Java 8 это действительно довольно просто:

import java.util.Arrays; 

public class Test { 
    public static void main(String[] args) { 
     int[] array = Arrays.stream(args).mapToInt(Integer::parseInt).toArray(); 

     // Just for example 
     for (int value : array) { 
      System.out.println(value); 
     } 
    } 
} 
+0

'java Test 1 2 3 e 5' oops – Clashsoft

+0

@Clashsoft: Да, если вы не пройдете действительные номера, это сработает. Кажется разумным для меня. –

4

Аргументы командной строки - это текст. Вы можете передать их как список, разделенный запятой, который вы можете передать. Или вы можете передать имя файла, которое содержит информацию, сохраненную в текстовом или двоичном формате.

+1

Спасибо за помощь! –

0

Было бы лучше, чтобы попросить пользователя, чтобы обеспечить, что параметры, используя что-то вроде этого

For(int i<0; i<ARRAYSIZE; i++) { 
Scanner reader = new Scanner(System.in); 
System.out.println("Enter the number :"); 
array[i] = reader.nextInt(); 
} 

Параметры обычно используются для настройки выполнения программы.

Смежные вопросы