C#统计字母出现过几次

ChinaHappyCat 2009-04-03 09:57:03
C#统计字母出现过几次,内容里面有很多东西,我想统计内容里面出现过几次aa?如何做啊?高手们指点下!
...全文
385 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
格拉 2009-04-06
  • 打赏
  • 举报
回复
UP
bxbacn 2009-04-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 chuxue1342 的回复:]
写错.汗!

C# code
string partten = "aa";
string source="dfsafaaadfdfaaaddaappaa";
if(Regex .IsMatch (source ,partten )==true )
{
Response.Write(Regex.Matches(source, partten, RegexOptions.Multiline).Count.ToString ());
}
[/Quote]

收藏
十八道胡同 2009-04-06
  • 打赏
  • 举报
回复
正则,顶
cczdp 2009-04-06
  • 打赏
  • 举报
回复
我支持楼上的这个,虽然算法有问题,方向是对的,简单,自己写一个还练习一下自己的算法能力,楼主,相信你问题早就解决了,不如试试手写一个吧,看这个问题至少你还需要学习是不?
Steve 2009-04-06
  • 打赏
  • 举报
回复
这么简单的问题还用LINQ,正则,Hashtable,简直大炮打蚊子.
int intCount = 0;
for (int i = 0; i < str.Length-1; i++)
{
if (str[i] == 'a' && str[i + 1] == 'a')
intCount++;
}

liu4545533 2009-04-06
  • 打赏
  • 举报
回复
模式匹配
正则表达式是最方便的啦
zzyzgydotnet 2009-04-06
  • 打赏
  • 举报
回复
老郭20130824 2009-04-06
  • 打赏
  • 举报
回复
int iCount = 0;
while(s.IndexOf("a")>0)
{
iCount++;
}
return iCount;
csucj 2009-04-06
  • 打赏
  • 举报
回复
MARK……
readfuture 2009-04-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 chuxue1342 的回复:]
写错.汗!

C# code
string partten = "aa";
string source="dfsafaaadfdfaaaddaappaa";
if(Regex .IsMatch (source ,partten )==true )
{
Response.Write(Regex.Matches(source, partten, RegexOptions.Multiline).Count.ToString ());
}
[/Quote]
牛人,顶
haifeng39 2009-04-06
  • 打赏
  • 举报
回复
支持正则
xyz136299110 2009-04-04
  • 打赏
  • 举报
回复
/很简单,用hasttable或者自定义一个类型带两个参数就可以解决,一个是key让他赋给你的值,eg:"abcdegferg",每次得到其中的一个字符,然后另外一个是value(int型)来统计出现过数。。
chuxue1342 2009-04-04
  • 打赏
  • 举报
回复
写错.汗!

string partten = "aa";
string source="dfsafaaadfdfaaaddaappaa";
if(Regex .IsMatch (source ,partten )==true )
{
Response.Write(Regex.Matches(source, partten, RegexOptions.Multiline).Count.ToString ());
}


chuxue1342 2009-04-04
  • 打赏
  • 举报
回复
用正则式比较简单!

string partten = "aa";
string source="dfsafaaadfdfaaaddaappaa";
if(Regex .IsMatch (source ,partten )==true )
{
response.Write(Page,Regex.Matches(source, partten, RegexOptions.Multiline).Count.ToString ());
}
yanhuooo 2009-04-04
  • 打赏
  • 举报
回复
楼上的太强大了。
benbenkui 2009-04-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 chuxue1342 的回复:]
写错.汗!

C# code
string partten = "aa";
string source="dfsafaaadfdfaaaddaappaa";
if(Regex .IsMatch (source ,partten )==true )
{
Response.Write(Regex.Matches(source, partten, RegexOptions.Multiline).Count.ToString ());
}
[/Quote]
这个不错
only_lonely 2009-04-04
  • 打赏
  • 举报
回复
全是牛人!
cacaca6 2009-04-03
  • 打赏
  • 举报
回复
还是我来吧,用LINQ,真正的一条语句

string sourceString = "aaaakkaaakkaaaaaakk";
string targetString = "aa";

int num = sourceString.ToCharArray().Where((x, n) => n < sourceString.Length - targetString.Length).Select((x, n)=> sourceString.Substring(n, targetString.Length)).Count(x => x == targetString);

Console.WriteLine(num);

楼主给分


cacaca6 2009-04-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 coodd 的回复:]
不好意思,是:(Content.Length-Content.Replace("aa","").Length)/2
[/Quote]

你这个是不对的,因为楼上说了要考虑重叠的情况
比如

Content = "aaaab";
按照你的方法会统计出2个aa,但是因为必须考虑重叠,所以正确答案应该是3个aa


coodd 2009-04-03
  • 打赏
  • 举报
回复
不好意思,是:(Content.Length-Content.Replace("aa","").Length)/2
加载更多回复(7)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧