2022年2022年计算字符串中每种字符出现的次数 .pdf
《2022年2022年计算字符串中每种字符出现的次数 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算字符串中每种字符出现的次数 .pdf(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、计算字符串中每种字符出现的次数Dictionary泛型集合用法前几天,同学问了我一道程序员的面试题,题目是“ 统计用户输入的一串数字中每个数字出现的次数 ” 。当时看到这个题目,我的第一想法就是:1.先判断用户输入的是否是数字,用if-else 语句来判断;2.将用户输入的数字字符串转换成char 数组;3.用 for 循环遍历每个字符,根据switch-case 语句来逐一判断。4.再建立一个 int 数组来接收判断后的结果,最后for 循环输出。class Program static void Main( string args) /计算用户输入的一串数字中每个数字出现的次数 Conso
2、le.WriteLine(请输入一串数字 ); string str = Console.ReadLine();/将字符串转换为字符数组char chnum = str.ToCharArray(); #region 判断用户输入的是否是数字for (int i = 0; i chnum.Length; i+) /判断每一个字符是否是数字通过 char 的方法来判断if (!char.IsNumber(chnumi) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页
3、 - - - - - - - - - Console.WriteLine(您的输入有误,请输入数字); Console.ReadKey(); return ; #endregion/定义一个新的数组来保存计数int count= new int 9; #region for 循环遍历/for 循环遍历for (int i = 0; i chnum.Length; i+) switch (chnumi) case 1: count0+; break ; case 2: count1+; break ; case 3: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
4、- - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - count2+; break ; case 4: count3+; break ; case 5: count4+; break ; case 6: count5+; break ; case 7: count6+; break ; case 8: count7+; break ; case 9: count8+; break ; #endregion#region 循环输出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
5、- - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - for (int i = 0; i count.Length; i+) Console.WriteLine(含有的数字 0 的个数是: 1 , i + 1, counti); #endregion Console.ReadKey(); 运行效果如下:不过,这种方法有 两个缺点 就是,如果用户输入的不是数字 (如字母或符号等) ,程序会提示错误,并退出;再者,也会统计出用户没有输入过的数字的个数为0个,如果某些时候不想知道没有输入的数字的个数,这种解法很不合适,
6、 而且代码修改起来也很复杂。新解法:泛型集合名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 碰巧这几天接触了泛型集合,没想到用Dictionary 来解这道题是那么的简单。代码如下:class Program static void Main( string args) Console.WriteLine(请输入数字 ); string numbers = Console.ReadLine(); /创建集合键 为数字 char
7、 类型值为每个数字出现的次数 int 类型 Dictionary dict = new Dictionary(); /将数字字符串转换为单个字符数组char chs = numbers.ToCharArray(); for (int i = 0; i chs.Length; i+) /判断是否是数字 用到 char 的 isnumber 方法if (char.IsNumber(chsi) /如果键中已含有该数字 ,则将其对应的值 +1,否则不存在,加入键中 值为 1 if (!dict.ContainsKey(chsi) /将每个数字字符作为键存入 键值对中, 值初始为 1 dict.Add(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算字符串中每种字符出现的次数 2022 计算 字符串 每种 字符 出现 次数
限制150内