java - 编写一个名为 averageVowels 的方法

标签 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;
  }
}

最佳答案

每当您发现一个包含任何元音的单词时,您就是在测试您的条件(如果条件为真,您什么也不做,这是另一个问题)。

您没有计算每个单词中的单个元音。

您应该遍历每个输入单词的字符,以计算元音的总数。

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/

相关文章:

java - 如何在 Windows 的 shell 脚本中配置 JAVA_HOME

java - 当我单击浏览器上的停止按钮时会发生什么?

java - 如何解析作为 json 字符串 int 时间对象接收的时间 PT15H30M?

java - android studio 自动完成 : how to display constructors with parameters

java - 如何使用 GridBagLayout 设置最小尺寸?

java - 指纹SDK体验

java - ProtocolException:流的意外结束

java - 数据库不显示两个特定实体的关系 - Spring Boot 应用程序

java - TornadoFX 中设置 PrimaryStage 或 Scene 属性的方法

java - 在 Java 中强制转换变量