c# – 如何打印出元音最多的单词

c# – 如何打印出元音最多的单词,第1张

概述我得到了一个代码,它在一行中找到一个至少有3个不同元音单词.问题是我不知道为什么它会超出范围. static string findword(string e){ char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; char[] sk = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' 我得到了一个代码,它在一行中找到一个至少有3个不同元音的单词.问题是我不知道为什么它会超出范围.

static string finDWord(string e){    char[] vowels = { 'a','e','i','o','u' };    char[] sk = { ' ','.',','!','?',':',';','(',')','\t' };     string word= "";    string[] parts = e.Split(sk,StringSplitoptions.RemoveEmptyEntrIEs);        for (int i = 0; i < e.Length; i++)        {            if (parts[i].IndexOf(vowels[i]) >= 3)            {                word = parts[i];            }        }    return word;}

因此,对于e =“我今天要回家”它应该返回“今天”.

解决方法 这是我的版本:

var e = "I was going home today";        char[] vowels = { 'a','u' };        char[] sk = { ' ','\t' };        string word = "";        string[] parts = e.Split(sk,StringSplitoptions.RemoveEmptyEntrIEs);        var mostVowels = 0;        for (int i = 0; i < parts.Length; i++)        {            var part = parts[i];            var numberOfVowels = 0;            foreach (var vowel in vowels)            {                if (part.Contains(vowel)) numberOfVowels++;            }            if (mostVowels < numberOfVowels)            {                mostVowels = i;                word = part;            }        }        return(word);

它遍历各个部分,然后另一个循环检查该部分是否包含每个元音.然后它检查这个单词是否优于以前的最佳单词.

请注意,这会返回’going’,因为它是带有两个元音的第一个单词.

另请注意,我使用’foreach’而不是正常for循环,这有助于避免许多常见错误.

这段代码可能更好,因为它只查找每个元音一次.像’Aardvark’这样的单词只会得1分.毫无疑问,使用liNQ和正则表达式这是一种非常简洁的方法,但希望这可以帮助你了解你的循环和数组出错的地方.

编辑:这是一个正则表达式& liNQ版本适合您:

var r = new Regex("(a|e|i|o|u)");    var mostVowels = parts.Max(y => r.Matches(y).Count);    var result = parts.First(x => r.Matches(x).Count == mostVowels);

正则表达式是寻找元音的助手.第一个查询计算每个单词中的元音数量并返回最大值.第二个用元音找到第一个单词.

总结

以上是内存溢出为你收集整理的c# – 如何打印出元音最多的单词全部内容,希望文章能够帮你解决c# – 如何打印出元音最多的单词所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1215122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存