2011-08-10 5 views
1

J'ai besoin de calculer le nombre d'entiers dans un argument et de calculer la moyenne. Actuellement mon code est le suivant avec le problème en gras.Utilisation de args.length au lieu de nums.length

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; 


} 

Comment puis-je faire en sorte que la moyenne est calculée en utilisant des nombres entiers dans args.length?

+0

Vérifiez la signature de la méthode principale. Son p.s.v.m (String args []). C'est-à-dire que 'args est un tableau de type String'. D'où l'erreur. – Logan

Répondre

4

votre variable args est un tableau de chaînes et vous ne pouvez pas ajouter directement une chaîne à un int. Utilisez ceci:

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

De plus en utilisant un pour chacun peut rendre le code plus facile à lire:

for(final String s:args) { 
    sum += Integer.parseInt(s); 
} 
1

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

1
sum += args[i]; 

devrait être

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

arguments de ligne de commande généralement reconnus comme Strings.So vous devez d'abord le convertir en nombre et l'utiliser comme ceci

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

le problème est que vous obtenez des cordes args arguments lorsque vous entrez ceux sur la ligne de commande. Vous devez les convertir en type Integer.

Utilisez ce,

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