Командная строка с неопределенными целыми числами

#java #string #command-line #count

Вопрос:

Я пытаюсь написать программу, которая передает неопределенное количество целых чисел в качестве аргументов командной строки основному методу и отображает:

  • общее количество целых чисел, введенных пользователем
  • и их общее

Вот что у меня есть на данный момент.

 
public static void main(String[] args) {
        
Scanner input = new Scanner(System.in);
int count = 0;
int number, sum = 0;
do {        
number = input.nextInt();
sum = sum   number;
  count;

}
while(number != 0);
        // Displays number count.
        System.out.println("You entered "    count   " numbers");
        // Displays the total.
        System.out.println("The sum of these numbers is "   sum);
    }
}


 

Я хотел бы иметь метод для подсчета количества целых чисел в строке, цикл for и следующий символ, а также целое число, чтобы отслеживать его, и метод для добавления чисел, но я не уверен, как его написать без ошибок компиляции.

Комментарии:

1. Какие ошибки компиляции ? Вы используете аргументы cli, но пользователь вводит данные ПОСЛЕ запуска программы

Ответ №1:

Ваша программа работает хорошо, но использует не аргумент cli*, а пользовательский ввод.

Разница в том, что для

  • 1-й аргумент приводится перед запуском программы
     java myProgram arg1 arg2
    >> output
     
  • во 2-м случае аргументы запрашиваются и считываются во время выполнения программы
     java myProgram 
    >> Please give arg1:
    12
    >> Please give arg2:
    22
    >> output
     

Так как ваша программа выполняет ввод данных пользователем, вот код для аргумента cli:

 int count = 0;
int number, sum = 0;
for (String arg : args) {
    number = Integer.parseInt(arg);
    sum = sum   number;
      count;
}
System.out.println("You entered "   count   " numbers");
System.out.println("The sum of these numbers is "   sum);