C# 統計字元出現次數
阿新 • • 發佈:2021-09-22
有如下字串:【"患者:“大夫,我咳嗽得很重。” 大夫:“你多大年記?” 患者:“七十五歲。” 大夫:“二十歲咳嗽嗎”患者:“不咳嗽。” 大夫:“四十歲時咳嗽嗎?” 患者:“也不咳嗽。” 大夫:“那現在不咳嗽,還要等到什麼時咳嗽?”"】。需求:
①請統計出該字元中“咳嗽”二字的出現次數,以及每次“咳嗽”出現的索引位置。
②擴充套件(*):統計出每個字元的出現次數。
用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