0

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

这是我计算元音的方法:

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

这是我在 main 中调用它的时候:

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.");
}

有任何想法吗?!谢谢!

4

1 回答 1

3

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

Character.toLowerCase(a) == vowel
于 2013-08-26T12:01:25.320 回答