C#中如何计算一个字符串中某个指定字符的个数

string str="ahgtfuiajnajdha";比如这样一个字符串,怎么计算里面包含字母a的个数?

使用Contains()方法判断是否存在需要查找的字符,从而进行个数统计。

具体步骤如下:

1、计算字符串中子串出现的次数的代码如下:

2、执行方式,调用:

3、执行结果:

扩展资料:

C#中的Contains与IndexOf的差异:

C#中要判断一个字符串是否包含另一个字符串,常用的两种方法是:str.Contains和str.IndexOf。

这两个方法的区别是:

Contains是找指定字符串是否包含一个字串,返回值的boolean类型,即只有true和false

IndexOf有多个重载,但无论哪个,都是做一定的匹配,然后把匹配的第一个字符的位置返回,返回的是int类型,如果没找到,那么返回-1。

参考资料:

微软文档中心--CONTAINS

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-18

使用函数indexof()来检索字符串中所需要的字符出现的次数。

代码如下:

class Program

{

static void Main(string[] args)

{

//统计出字符串中,下雪出现的次数

string text = "今天下雪了吗,明天不会下雪了吧,什么时候才不下雪啊,我要去上学啊!";

string keyWord = "下雪";

int index = 0;

int count = 0;

while ((index=text.IndexOf(keyWord,index))!=-1)

{

count++;

Console.WriteLine("第{0}次;索引是{1}",count,index);

index =index+ keyWord.Length;

}

Console.WriteLine("下雪出现的总次数:{0}",count);

Console.ReadKey();

}

}

扩展资料:

字符串函数应用

1、 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.

例:concat(‘11’,'aa’)='11aa’;

2、 求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。

例:copy(‘abdag’,2,3)=’bda’

3、 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。

例:s:=’abcde’;delete(s,2,3);结果s:=’ae’

4.、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置

例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’

5、 求字符串长度 length(s) 例:length(‘12abc’)=5

在ASP中 求字符串长度用 len(s)例: len("abc12")=5

6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.

例:pos(‘ab’,’12abcd’)=3

7.、字符的大写转换。Upcase(ch) 求字符ch的大写体。

例:upcase(‘a’)=’A’

参看资料:百度百科-字符串



本回答被网友采纳
第2个回答  2014-09-05
获得str长度,把字符a替换掉,再计算str长度,相减,就是a的个数了
第3个回答  2014-09-05
Regex.Matches(str,@"a").Count

追问

敲不出来,regex

追答//添加正则引用啊
using System.Text.RegularExpressions;
//如果不清楚去看看msdn的手册 http://msdn.microsoft.com/zh-cn/library/vstudio/b9712a7w.aspx

本回答被提问者采纳
第4个回答  2017-09-18
可以正则表达式 取匹配的个数
可以循环字符串逐个判断
写一个循环例子吧
char[]chs=str.ToArray()
int count=0;
for(int i=0;i<chs.Length;i++){
if(chs[i]=='a')count++;
}
相似回答