Использование args.length вместо nums.length - PullRequest
1 голос
/ 10 августа 2011

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

int count = args.length;
    System.out.println(count);

    int sum = 0;
    for (int i = 0; i < args.length; i++)
        **sum += args[i];**
            **//  The operator += is undefined for the argument type(s) int, String**

    double average = ((double) sum) / args.length;


}

Как мне сделать так, чтобы среднее значение вычислялось с использованием целых чисел в args.length?

Ответы [ 5 ]

4 голосов
/ 10 августа 2011

ваша переменная args является массивом Strings, и вы не можете напрямую добавить String в int. Используйте это вместо:

sum += Integer.parseInt(args[i]); 

Более того, использование a для каждого может облегчить чтение кода:

for(final String s:args) { 
    sum += Integer.parseInt(s); 
}
1 голос
/ 10 августа 2011

Проблема в том, что вы получаете String из аргументов args, когда вводите их в командной строке.Вам нужно преобразовать их в тип Integer.

Используйте это,

sum += Integer.parseInt(args[i]);
1 голос
/ 10 августа 2011

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

sum+=Integer.parseInt(args[i]);
1 голос
/ 10 августа 2011
sum += args[i];

должно быть

sum += Integer.parseInt(args[i]);
1 голос
/ 10 августа 2011

Использование sum += Integer.parseInt(args[i]);

...