方法错误计算元音的数量

时间:2013-08-26 11:59:07

标签: java variable-assignment

我的作业要求我读取文件并打印每行中的元音数量。由于一些奇怪的原因,它在某些行中打印出适量的元音,但在其他行中却没有。为什么这样做?!

这是我计算元音的方法:

public static int calculateVowels(String line) 
{
    char[] vowels = new char[] {'a','e','i','o','u'};

    // count the number of vowels in a line
    int vowelCount = 0;
    for (int i = 0; i < line.length(); i++) {
        char a = line.charAt(i);
        for (char vowel : vowels) {
            if (a == vowel){
                vowelCount++;
                break;
            }
        }
    }
    return vowelCount;
}

这就是我在主要的时候打电话:

while ((line = br2.readLine()) != null) 
{
    lineCount++;
    // count the number of words in a line
    String[] words = line.split(" ");
    if (words != null)
    wordCount += words.length;

    int vowelCount = calculateVowels(line);
    System.out.println("Line " + lineCount + " has " + vowelCount + " vowels.");
}

任何想法?!谢谢!

1 个答案:

答案 0 :(得分:3)

您只计算小写元音。我的猜测是,计数在包含以元音开头的句子/大写单词的行中关闭。您可以使用此测试:

Character.toLowerCase(a) == vowel