使用IndexOf方法来判断“咳嗽”出现的次数及索引、使用Dictionary<key,value> 集合统计没个字符出现的次数
static void Main(string[] args) { #region string str = "患者:医生我咳嗽的很严重,大夫:你多大年纪了? 患者:我75岁 大夫:那二十岁咳嗽吗? 患者:不咳嗽 大夫:四十岁咳嗽吗? 患者:也不咳嗽 大夫那现在不咳嗽,要什么时候咳嗽";根据字符串来查找“咳嗽出现的次数和每次出现的索引” string str = "患者:医生我咳嗽的很严重,大夫:你多大年纪了? 患者:我75岁 大夫:那二十岁咳嗽吗? 患者:不咳嗽 大夫:四十岁咳嗽吗? 患者:也不咳嗽 大夫那现在不咳嗽,要什么时候咳嗽"; //记录“咳嗽”出现的次数 int count = 0; //记录从哪里开始查找 int index = 0; //indenof指定字符串在此第一次出现的索引位置 //使用indexof查找“咳嗽”从0开始 在赋值给index,这时候index=8 ,那下次还是从8开始查找,形成死循环,所要记上字符串的长度在赋值给index。 while ((index = str.IndexOf("咳嗽", index)) != -1) //indenof指定字符串在此第一次出现的索引位置 { index += "咳嗽".Length; count++; Console.WriteLine(index); } Console.WriteLine(count); Console.ReadKey(); #endregion }
字符串每个字符出现的次数
static void Main(string[] args) { #region string str = "患者:医生我咳嗽的很严重,大夫:你多大年纪了? 患者:我75岁 大夫:那二十岁咳嗽吗? 患者:不咳嗽 大夫:四十岁咳嗽吗? 患者:也不咳嗽 大夫那现在不咳嗽,要什么时候咳嗽";根据字符串来查找“咳嗽出现的次数和每次出现的索引” string str = "患者:医生我咳嗽的很严重,大夫:你多大年纪了? 患者:我75岁 大夫:那二十岁咳嗽吗? 患者:不咳嗽 大夫:四十岁咳嗽吗? 患者:也不咳嗽 大夫:那现在不咳嗽,要什么时候咳嗽"; //定义字典集合 Dictionary<char, int> my = new Dictionary<char, int>(); //添加Key和Value for (int i = 0; i < str.Length; i++) { if (!my.ContainsKey(str[i])) //如果my集合中的key不包含字符串i索引字符, { my.Add(str[i],1); //字典集合添加(字符串i字符,key=1) 因为是第一次出现 } else { //如果不是第一次出现了,那Key值就++ my[str[i]]++; } } foreach (var item in my) { Console.WriteLine("字符 {0} 出现了{1}次",item.Key,item.Value); } Console.ReadKey(); #endregion