You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB中统计.ToCharArray生成的字符数组内指定字符出现次数的方法

统计字符数组中目标字母的出现次数

嘿,这个需求太常见了,我给你分享几种实用的实现方式,你可以根据自己的.NET版本和代码风格来选:

方法一:基础循环遍历(直观易懂,兼容所有版本)

这是最基础的方式,适合刚入门的开发者理解逻辑,也能灵活控制各种判断条件:

// 假设你已经有了转换好的字符数组
char[] charArray = "HelloWorld".ToCharArray();
// 要统计的目标字母
char targetChar = 'l';
int count = 0;

foreach (char c in charArray)
{
    // 精准匹配(区分大小写)
    if (c == targetChar)
    {
        count++;
    }
    // 如果需要忽略大小写,把上面的判断换成下面这行
    // if (char.ToLowerInvariant(c) == char.ToLowerInvariant(targetChar))
}

Console.WriteLine($"字符 '{targetChar}' 出现了 {count} 次");

方法二:用LINQ一行搞定(简洁高效)

如果你熟悉LINQ的话,这绝对是最省心的方式,代码量少还清晰:

char[] charArray = "HelloWorld".ToCharArray();
char targetChar = 'l';

// 区分大小写的统计
int caseSensitiveCount = charArray.Count(c => c == targetChar);

// 忽略大小写的统计(推荐用StringComparison,比ToLower更稳妥)
int caseInsensitiveCount = charArray.Count(c => 
    char.Equals(c, targetChar, StringComparison.OrdinalIgnoreCase));

Console.WriteLine($"区分大小写:{caseSensitiveCount} 次,忽略大小写:{caseInsensitiveCount} 次");

小提示

其实如果还没把字符串转成字符数组,直接用字符串的Count方法更省事,比如:

"HelloWorld".Count(c => c == 'l');

不过既然你已经有了字符数组,上面的两种方法完全适用。另外,处理Unicode字符或者特殊场景时,优先用char.Equals搭配StringComparison枚举,能避免很多大小写转换的坑。

内容的提问来源于stack exchange,提问作者tkburis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:42:25