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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM