C# 统计字符出现次数

有如下字符串:【"患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。需求:
①请统计出该字符中“咳嗽”二字的出现次数,以及每次“咳嗽”出现的索引位置。
②扩展(*):统计出每个字符的出现次数。

IndexOf方法, // 搜索如果不存在,返回 -1。注意看提示重载。用它的重载方法(见下面代码),返回索引位置。

mLastIndexOf // 最后出现的索引位置。 判断,当 IndexOF 和 LastIndexOf 相等的时候,可以确定这个字符串只出现了一次。

Dictionary<char, int>统计字符出现次数。

string msg = "患者:“大夫,我咳嗽得很重。”     大夫:“你多大年记?”     患者:“七十五岁。”     大夫:“二十岁咳嗽吗”患者:“不咳嗽。”     大夫:“四十岁时咳嗽吗?”     患者:“也不咳嗽。”     大夫:“那现在不咳嗽,还要等到什么时咳嗽?”";
int count = 0;
int index = 0;

while ((index = msg.IndexOf("咳嗽", index)) != -1) {
    count++;
    Console.WriteLine("\"咳嗽\"在{0}索引中出现第{1}次。", index, count);
    index = index + "咳嗽".Length;
}
Console.ReadKey();

输出:

"咳嗽"在8索引中出现第1次。
"咳嗽"在58索引中出现第2次。
"咳嗽"在67索引中出现第3次。
"咳嗽"在84索引中出现第4次。
"咳嗽"在100索引中出现第5次。
"咳嗽"在117索引中出现第6次。
"咳嗽"在127索引中出现第7次。

string msg = "患者:“大夫,我咳嗽得很重。”     大夫:“你多大年记?”     患者:“七十五岁。”     大夫:“二十岁咳嗽吗”患者:“不咳嗽。”     大夫:“四十岁时咳嗽吗?”     患者:“也不咳嗽。”     大夫:“那现在不咳嗽,还要等到什么时咳嗽?”";

Dictionary<char, int> dict = new Dictionary<char, int>();
for (int i = 0; i < msg.Length; i++) {
    if(!dict.ContainsKey(msg[i])) {
        dict.Add(msg[i], 1);
    }
    else {
        dict[msg[i]]++;
    }
}

foreach(KeyValuePair<char, int> item in dict) {
    Console.WriteLine("字符\"{0}\"出现了{1}次。", item.Key, item.Value);
}
Console.ReadKey();

输出:

字符"患"出现了4次。
字符"者"出现了4次。
字符":"出现了8次。
字符"“"出现了8次。
字符"大"出现了6次。
字符"夫"出现了5次。
字符","出现了2次。
字符"我"出现了1次。
字符"咳"出现了7次。
字符"嗽"出现了7次。
字符"得"出现了1次。
字符"很"出现了1次。
字符"重"出现了1次。
字符"。"出现了4次。
字符"”"出现了8次。
字符" "出现了30次。
字符"你"出现了1次。
字符"多"出现了1次。
字符"年"出现了1次。
字符"记"出现了1次。
字符"?"出现了3次。
字符"七"出现了1次。
字符"十"出现了3次。
字符"五"出现了1次。
字符"岁"出现了3次。
字符"二"出现了1次。
字符"吗"出现了2次。
字符"不"出现了3次。
字符"四"出现了1次。
字符"时"出现了2次。
字符"也"出现了1次。
字符"那"出现了1次。
字符"现"出现了1次。
字符"在"出现了1次。
字符"还"出现了1次。
字符"要"出现了1次。
字符"等"出现了1次。
字符"到"出现了1次。
字符"什"出现了1次。
字符"么"出现了1次。



参考:
1.link-01

posted @   double64  阅读(2467)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示