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