我的作业要求我读取文件并打印每行中的元音数量。由于一些奇怪的原因,它在某些行中打印出适量的元音,但在其他行中却没有。为什么这样做?!
这是我计算元音的方法:
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.");
}
任何想法?!谢谢!
答案 0 :(得分:3)
您只计算小写元音。我的猜测是,计数在包含以元音开头的句子/大写单词的行中关闭。您可以使用此测试:
Character.toLowerCase(a) == vowel