gpt4 book ai didi

java - isVowel() 方法,用于字符串中的字符

转载 作者:行者123 更新时间:2023-12-01 17:12:11 26 4
gpt4 key购买 nike

我有一个包含一堆单词的文本文件。我的程序的一部分应该根据用户输入扫描此列表并将包含所需数量的元音的单词插入到输出文件中。我有一个返回 boolean 值的 isVowel 方法,但它似乎不起作用——输出只是一个空列表。

方法如下:

public boolean isVowel(char c)
{
if(c=='a' || c=='A' || c=='e' || c=='E' || c=='i' || c=='I' || c=='o' || c=='O' || c=='u' || c=='U')
{
return true;
}
else
{
return false;
}
}
}

这是程序中使用它的部分:

public ArrayList<String> vowelHeavy(int n, int m)
{
int vowels = 0;
while(input.hasNextLine())
{
word = input.nextLine();
if (word.length() == n)
{
for(int i = 0; i < word.length(); i++)
{
if(isVowel(word.charAt(i)) == true)
{
vowels++;
}
}
if (vowels == m)
{
output.add(word);
}
}
word = input.nextLine();
}
return output;
}

最佳答案

您最大的问题是,当您测试新单词时,您没有重置元音计数变量。该值只是不断累积文件中的总元音

更改:

int vowels = 0;
while(input.hasNextLine()) {
...

至:

while(input.hasNextLine()) {    
int vowels = 0;
...
<小时/>

顺便说一句,您的大部分代码,包括 isVowel() 方法,都可以用一行代码消除:

int vowels = word.replaceAll("[^aeiouAEIOU]", "").length();

这是通过从单词中消除所有非元音字符来实现的;剩下的是元音,所以只需取长度即可得到计数。

关于java - isVowel() 方法,用于字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23191155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com