我遇到了一个简单的 arraylist 问题 我得到了错误的输出,似乎程序正在计算 arraylist 中的字符串数量而不是计算元音字符
import java.util.*;
public class AverageVowels {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Tooo");
list.add("beee");
list.add("ooor");
list.add("nooot");
list.add("Toooo");
list.add("beeee");
averageVowels(list);
}
public static double averageVowels(ArrayList<String> list) {
double count = 0;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).contains("a")
|| list.get(i).contains("e")
|| list.get(i).contains("i")
|| list.get(i).contains("o")
|| list.get(i).contains("u")) {}
count++;
}
double average = (double) list.size() / count;
System.out.println(average);
return average;
}
}
最佳答案
每当您发现一个包含任何元音的单词时,您就是在测试您的条件(如果条件为真,您什么也不做,这是另一个问题)。
您没有计算每个单词中的单个元音。
您应该遍历每个输入单词的字符,以计算元音的总数。
for (String word : list) {
for (int j = 0; j < word.length(); j++) {
if (word.charAt(j)=='a'||word.charAt(j)=='e'||word.charAt(j)=='i'||word.charAt(j)=='o'||word.charAt(j)=='u') {
count++;
}
}
}
除此之外,您还向后计算了平均值。应该是:
double average = (double)count/list.size();
元音总数除以单词数得到单词中元音的平均数。
关于java - 编写一个名为 averageVowels 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38375122/