C#字符串函数应用:如何修改代码实现各元音字母的单独计数
C#元音字母分个数统计修改方案
核心修改点
- 替换原有仅存储总元音数的
vow变量,改用Dictionary<char, int>字典结构,直接存入5个元音字母作为键,初始计数都设为0,同时可以替代原有HashSet的元音判断功能 - 循环遍历输入字符串时,匹配到元音字符后直接给对应键的计数值+1,不再累加总计数
- 输出环节遍历字典即可逐个打印每个元音字母的统计结果,如需总计数可直接对字典所有值求和
修改后完整代码
using System; using System.Collections.Generic; // 如需使用Sum方法计算总计数,需引入以下命名空间 using System.Linq; namespace VowelCount { class Program { static void Main(string[] args) { string name; // 初始化元音计数字典 var vowelCount = new Dictionary<char, int> { {'a', 0}, {'e', 0}, {'i', 0}, {'o', 0}, {'u', 0} }; Console.Write("Input characters:"); name = Console.ReadLine().ToLower(); for (int k = 0; k < name.Length; k++) { char current = name[k]; if (vowelCount.ContainsKey(current)) { vowelCount[current]++; } } // 逐个输出每个元音的统计结果 foreach (var countItem in vowelCount) { Console.WriteLine("No. of '{0}': {1}", countItem.Key, countItem.Value); } // 输出总元音数,不需要可以删除 int total = vowelCount.Sum(x => x.Value); Console.WriteLine("Total No. of vowels: {0}", total); Console.WriteLine("Press any key to continue..."); Console.ReadKey(true); Console.ReadLine(); } } }
如果不想引入Linq命名空间,也可以在遍历字典输出的时候累加得到总计数,不需要额外调用Sum方法。
内容的提问来源于stack exchange,提问作者RUSSEL GUERRERO
相关产品推荐
相关产品推荐

