统计Welcome To China中每个字符出现的次数,不考虑大小写

统计Welcome To China中每个字符出现的次数,不考虑大小写

这道题是我学C#多态的时候讲到的一道题
看过老师的解题思路,有更简单的方法
不过我当时在做这个题的时候没有看答案
纯粹是按照自己的解题思路来做的,以下是我的解题思路
还望各位多多指教。

  static void Main(string[] args)
        {
            //统计Welcome To China中每个字符出现的次数,不考虑大小写
            string info = "Welcome To China";
            info = info.ToLower();//首先把字符串转成小写
            List<char> temp = new List<char>();//创建一个char类型的泛型集合

            for (int i = 0; i < info.Length; i++)
            //字符串可以看成一个char数组,遍历这个char数组的每一项元素
            {
                if (temp.IndexOf(info[i])==-1&&info[i]!=' ')
                //如果这个char数组的当前元素不在我的泛型集合里,且当前这个元素不为空格--> ' '
                {
                    temp.Add(info[i]);//则把这个元素加入进我的泛型集合
                }
            }//完成循环后,我的char泛型集合里存放的都是拿到的字符串中去掉空格和重复值的数据

            int[] jiShu = new int[temp.Count];
            //创建一个int数组,用来存放每一个字符出现的次数

            for (int i = 0; i < info.Length; i++)//遍历字符串(即char数组)
            {
                for (int j = 0; j < temp.Count; j++)
                //在每一次遍历char数组的时候,把泛型集合的每一项都遍历一次
                //跟char数组的当前元素做比较
                {
                    if (temp[j] == info[i])//如果想等
                    {
                        jiShu[j] += 1;//就把计数数组的当前元素+1
                    }
                }
            }

            Dictionary<char, int> result = new Dictionary<char, int>();
            //创建一个Dictionary字典集合
            for (int i = 0; i < temp.Count; i++)
            //遍历存放处理后的字符串数据的泛型集合temp,因为元素个数和计数数组个数相同
            //故而遍历谁(temp或jishu)都无所谓
            {
                result.Add(temp[i], jiShu[i]);
                //把temp的每一项作为键,jishu的每一项作为值加入进result字典集合
            }

            Console.WriteLine("每个字符出现的次数:");
            foreach (KeyValuePair<char,int> jz in result)
            //遍历result字典集合,把键和值对应输出显示
            {
                Console.WriteLine("{0}出现了{1}次", jz.Key, jz.Value);
            }
            Console.ReadKey();

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值