J'essaie d'obtenir une longueur moyenne de chaque élément de mon tableau de chaînes. Mais pas sûr avec mon code. Des suggestions?
public static double averageLength(String[] words, int count) {
double countedLength = 0.0;
for(int i = 0; i < words.length; i++) {
countedLength += words[i].length();
count++;
}
return (double)countedLength / count;
}
3 Réponses :
Changer le retour en
return (double)countedLength / words.length;
Lorsque vous faites la moyenne, vous devez diviser par le nombre d'éléments que vous avez résumés. De plus, dans votre méthode, vous n'avez pas besoin de passer la variable count car elle n'est pas utilisée dans votre méthode.
public static double averageLength(String[] words) {
int countedLength = 0;
for(String word : words) {
countedLength += word.length();
}
return countedLength / words.length;
}
Juste par intérêt, vous pouvez toujours utiliser la structure de la boucle foreach pour parcourir les éléments:
public static double averageLength(String[] words) {
double countedLength = 0.0;
for(int i = 0; i < words.length; i++) {
countedLength += words[i].length();
}
return countedLength / words.length;
}
Le résultat est cependant le même.
Vous pouvez également utiliser l'API Stream pour cette tâche:
public static double averageLength(String[] words) {
return Arrays.stream(words)
.mapToDouble(String::length)
.average()
.getAsDouble();
}
... ou simplement .mapToDouble (String :: length) .
Oh mon Dieu! =) On dirait que quelqu'un ne s'est pas encore réveillé ... Merci. =)
Pourquoi avez-vous
countcomme paramètre? Et si tous les éléments du tableau sont comptés sans condition, pourquoi maintenir un décompte quand vous pouvez utiliser la longueur deword?cela faisait partie des instructions d'avoir le compte comme paramètre.
Méthode: double averageLength (String [] words, int count) Renvoie: double, la longueur moyenne des premiers mots de comptage dans les mots du tableau
Ensuite, votre problème est que vous itérez jusqu'à
words.length. Vous devez changer votre déclaration de boucle enfor (int i = 0; i. Et supprimez count ++;du corps de la boucleOui, cela résout mon problème, merci.