写一个名为averageVowels的方法

时间:2016-07-14 13:07:54

标签: java

我遇到一个简单的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;
  }
}

1 个答案:

答案 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();

元音总数除以单词数量,即可得出单词中元音的平均数。