计算字符串中泛型集合用法
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 1624
classProgram{staticvoidMain(string[]args){//计算字符串中每种字符出现的次数(面试题)。//&ldquoWelcometoChina,beijing&rdq
class Program
    {
        static void Main(string[] args)
        {
            //计算字符串中每种字符出现的次数(面试题)。 
            
//“Welcome to China , beijing”,
            
//不区分大小写,打印“W2”“e 2”“o 3”…… 

            /*思路:1 将字符串都转换为小写形式,否则 大小写会算各一个
             *     2 以字符为键 每个字符出现的次数为值  建立  Dictionary<char,int>泛型集合
             *     3 将字符串转换为字符数组
             *     4 循环遍历每个字符,加入集合中作为键,其对应的值初始为1
             *     5 在加入键之前做一个判断,由于集合中的键不能重复,所以判断如果键中已经还有该字符
             *     则不再加入该键,只把他的值+1
             *     6 去除字符串中的空格   char.isLetter()  如果是字母,进行操作5 
             *     7 总结:主要是泛型集合的应用
             
*/

            //例句:
            
//string sentences="Welcome to China , beijing";
            Console.WriteLine("请输入一段字母");
            string sentences = Console.ReadLine();

            //将字符串都转换为小写形式
            sentences = sentences.ToLower();
            //建立泛型集合
            Dictionary<char,int> dict=new Dictionary<char,int>();
            //将字符串变成字符数组
              char[] chs=sentences.ToCharArray();

            //遍历每一个字符
            for (int i = 0; i < chs.Length; i++)
            {
                //通过char的方法判断是否为字母,如果为字母,则进行下面的操作,
                
//否则不操作
                if (char.IsLetter(chs[i]))
                {
                    //如果不包含该键,则加入集合中
                    if (!dict.ContainsKey(chs[i]))
                    {
                        //将每个字符加入集合中对应键,其值初始为1
                        dict.Add(chs[i], 1);
                    }
                    else
                    {
                        //否则,包含该键,只将其对应的值+1即可   值的类型为int
                        
//dict[chs[i]] = dict[chs[i]] + 1;
                        dict[chs[i]]++;
                    }
                }
             
              
            }
            //循环遍历输出集合中的键 值
            foreach (KeyValuePair<char,int> kv in dict)
            {
                Console.WriteLine("字母:{0}出现了{1}次。",kv.Key,kv.Value);
            }
            Console.ReadKey();
        }
    }
联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2