C#代码优化需求:统计含至少一个字母A的单词数量
优化C#代码:统计含字母“A”的单词数量
你的代码核心问题在于循环内的判断逻辑错误——当前判断的是原输入字符串的最后一个字符,而非正在遍历的单词,且仅检查单个位置。以下是修正后的代码:
namespace Program { class Program { static void Main(string[] args) { Console.Write("s: "); string s = Console.ReadLine(); int count = 0; string[] sp = s.Split(new Char[] {' '}, StringSplitOptions.RemoveEmptyEntries); foreach (string word in sp) { // 检查当前单词是否包含字母'A'(区分大小写) if (word.Contains('A')) count++; } Console.WriteLine(count); } } }
关键修改说明
- 将循环变量名
s1改为word(可选,提升代码可读性) - 把错误的判断条件
s[s.Length-1] == 'А'替换为word.Contains('A'):Contains方法会遍历整个单词字符串,只要存在目标字符就返回true,满足任意位置包含'A'的统计需求
可选扩展:不区分大小写统计
如果需要同时统计包含小写'a'的单词,可将判断条件替换为:
if (word.IndexOf('A', StringComparison.OrdinalIgnoreCase) >= 0)
内容的提问来源于stack exchange,提问作者Matvei
相关产品推荐
相关产品推荐

