我遇到一个简单的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;
}
}
答案 0 :(得分:4)
当您找到包含任何元音的单词时,您正在测试您的条件(如果条件为真,则不执行任何操作,这是另一个问题)。
你不计算每个单词中的单个元音。
你应该迭代每个输入单词的字符,以便计算元音的总数。
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();
元音总数除以单词数量,即可得出单词中元音的平均数。