gpt4 book ai didi

java - 找到句子中元音最多的单词(可以是几个彼此等价的最大单词)

转载 作者:行者123 更新时间:2023-12-02 01:01:19 27 4
gpt4 key购买 nike

计算单词中元音的方法

public class Methods6 {
public static int countVowel(String words) {
int count = 0;
char[] vowel = {'a', 'e', 'i', 'o', 'u'};
for (int i = 0; i < words.length(); i++) {
char ch = words.charAt(i);
for (char cc : vowel) {
if (ch == cc) {
count++;
}
}
}
return count;
}

**找到句子中最大的元音**

public static String maxVowelWords() {
String sentence = getSentence().toLowerCase();
String words[] = sentence.split(" ");
int maxvowel = CountVowel(words[0]), count;
String maxWord = words[0];
for (int i = 1; i < words.length; i++) {
count = CountVowel(words[i]);
if (count > maxvowel) {
maxvowel = count;
maxWord = words[i] + " ";
}
}
return maxWord;

}}// 2 methods are located in the same Method Class
public class Test {
public static void main(String[] args) {
System.out.println(Methods6.MaxVowelWords());}}

编写此方法时,它仅给出元音字母最多的第一个单词(例如 --------- 你好我的 friend ! ----------- 只是你好,你好, friend ——不!我怎样才能改变这个方法?感谢您的帮助!

最佳答案

我对这个问题的解释是:

  • 在提供的字符串中查找包含最多元音的单词就在其中。
  • 如果同一个字符串中的一个或多个单词包含相同的最大数量的元音然后将单词连接在一起由空格(或其他)分隔。

因此,如果提供的字符串是:“hello myfriend”,那么两个单词 hellofriend 都将从ma​​xVowelWords() 方法的形式如下(比方说):

hello, friend

由于 hellofriend 都包含 2 个元音,这恰好是任何给定单词中元音的最大数量,因此返回两个单词。

如果提供的字符串是:“你好,我的 friend - 我住在密西西比河上。” 则该方法仅返回 Mississippi,因为它是 <该字符串中唯一的单词最多包含 4 个元音。字符串中包含元音的所有其他单词都包含较小的元音计数。

如果情况确实如此,那么您的方法应该如下所示:

public static String maxVowelWords() {
String sentence = getSentence();
String words[] = sentence.split(" ");
int maxvowel = 0;
String maxWord = "";
for (int i = 0; i < words.length; i++) {
int count = countVowels(words[i]);
if (count == maxvowel) {
maxvowel = count;
// Ternary Operator is used here to applt the delimiter (", ") if needed,
maxWord += (maxWord.equals("") ? words[i] : ", " + words[i]) + " (" + count + " vowels)";
}
else if(count > maxvowel) {
maxvowel = count;
maxWord = words[i] + " (" + count + " vowels)";;
}
}
return maxWord;
}

是的,您从 0 开始循环,并且 ma​​xWord 字符串变量应该初始化为保存空字符串 ("")。让for循环完成它的工作。不,计数并不是一种浪费,它实际上是一个要求,以便在通过该过程放置每个字符串单词时获得ma​​xvowel的最大元音计数。

您使用名为 getSentence() 的方法来获取要处理的字符串,并立即通过将其设置为全部小写来扭曲该原始字符串。您确实不应该这样做,因为从 ma​​xVowelWords() 方法返回的单词将不是最初提供的单词(如果它们碰巧具有大写元音)。对 countVowel() 方法进行小的修改就可以处理该事务,例如:

if (Character.toLowerCase(ch) == cc) {
count++;
}

关于java - 找到句子中元音最多的单词(可以是几个彼此等价的最大单词),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60596220/

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