使用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

 

posted @ 2018-08-14 14:39  WhiteSpace  阅读(419)  评论(0编辑  收藏  举报