黑马程序员-计算字符串中每种字符出现的次数
2013-09-24 16:32
176 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
题目:计算字符串中每种字符出现的次数。“Welcome to Chinaworld”,不区分大小写,打印“W 2”“e 2”“l 3”……
解题思路:
1、将字符串统一转为大写或者小写(string.upper()方法),然后把重复的字符筛选掉(for循环,向新字符串中依次填加原字符串中的字符,遇到重复则跳过),产生一个新的字符串。
2、用新的字符串中的字符和原字符串中的比较(for()循环比较是否相等,相等则次数加1),依次把每个字符出现的次数存入到一个int数组中
后话:这个是我测试里面感觉最难的,当时看到这个题真是一点思路也没有,差点就跑到网上去乱查了,后来静下心来之后,一步步思考,然后把思路整理下来,再写出了代码,后来发现程序中把string类型转换为char类型完成没有必要,string类型可以直接当作char数组类型来操作,又再修改,最后做出了让自己满意的答案。在网上看了一下,当然有更好,但相对我这个来说,实现的难度可能要大一些。
通过这个程序我感觉到规划好解题思路真的非常重要,实在不行就一步步写出来,“一步步思考,整理好思路,一步步实现,最后再修改”……
代码如下:
欢迎有高手前来指导,提出问题。。。
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
题目:计算字符串中每种字符出现的次数。“Welcome to Chinaworld”,不区分大小写,打印“W 2”“e 2”“l 3”……
解题思路:
1、将字符串统一转为大写或者小写(string.upper()方法),然后把重复的字符筛选掉(for循环,向新字符串中依次填加原字符串中的字符,遇到重复则跳过),产生一个新的字符串。
2、用新的字符串中的字符和原字符串中的比较(for()循环比较是否相等,相等则次数加1),依次把每个字符出现的次数存入到一个int数组中
后话:这个是我测试里面感觉最难的,当时看到这个题真是一点思路也没有,差点就跑到网上去乱查了,后来静下心来之后,一步步思考,然后把思路整理下来,再写出了代码,后来发现程序中把string类型转换为char类型完成没有必要,string类型可以直接当作char数组类型来操作,又再修改,最后做出了让自己满意的答案。在网上看了一下,当然有更好,但相对我这个来说,实现的难度可能要大一些。
通过这个程序我感觉到规划好解题思路真的非常重要,实在不行就一步步写出来,“一步步思考,整理好思路,一步步实现,最后再修改”……
代码如下:
class Program { /// <summary> /// 计算字符串中每种字符出现的次数。“Welcome to Chinaworld”,不区分大小写,打印“W 2”“e 2”“l 3”…… /// </summary> /// <param name="args"></param> static void Main(string[] args) { /*编程思路:新建一个string类型变量,把原存储的字符串中的字符去除掉重复后依次添加到新字符串中, 然后用新字符串的每个字符与旧字符串比较,得到新字符串的每个字符在原字符串中重复出现的次数*/ string str = "Welcome to Chinaworld".ToUpper(); //将字符串中的字母转化为大写字母 string newStr = ""; //定义一个字符串变量,接收去除掉重复元素后的字符串 for (int i = 0; i < str.Length; i++) //使用循环结构,比较原字符串和新字符串中的字符,并将每个不重复的字符累加到新字符串上 { if (newStr.Length <= 1) //当新字符串的长度小于等于1时,直接将原字符串中的字符,累加到新字符串上 newStr += str[i]; else { bool isSame = true; //定义bool变量,初始为true,当有重复字符串时,为false; for (int j = 0; j < newStr.Length; j++) //循环新字符串中的字符,避免将重复的字符累加到新的字符串上 { if (str[i] == newStr[j]) //当原字符串字符等于新字符串中的某个字符时 { isSame = false; } } if (!isSame) //为false时,跳过将当前重复的字符累加到新字符串中,并直接开始下一次循环 continue; newStr += str[i]; } } int[] arrInt = new int[newStr.Length]; //定义整数数组,存储每个字符在原字符串中重复出现的次数 for (int i = 0; i < newStr.Length; i++) { for (int j = 0; j < str.Length; j++) { if (newStr[i] == str[j]) //字符依次与原字符串中的字符比较,相等时,累加1,统计出重复的次数 arrInt[i]++; } } for (int i = 0; i < newStr.Length; i++) //循环输出每个字符重复的次数(包含空格) { Console.Write("“{0} {1}次”", newStr[i], arrInt[i]); } Console.ReadKey(); } }
欢迎有高手前来指导,提出问题。。。
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员 【】java学习之路——计算字符串中字母出现的次数
- 计算字符串中每种字符出现的次数(面试题)
- 计算字符在字符串是出现的次数
- js实现找出字符串中出现字数最多的字符并计算其出现次数
- 去除一个字符串中出现的重复字符,并计算出出现最多次的字符的出现次数
- 计算字符串中出现次数最多的字符和出现的次数
- 计算字符串中每个字符出现的次数
- JavaScript计算一个字符串最多重复的字符及出现次数
- JavaScript计算字符串中每个字符出现次数的小例子
- php如何计算一个字符串的每个字符出现的次数
- ORACLE计算字符在字符串中出现的次数
- 计算一个字符串最多重复的字符及出现次数
- 计算字符串中出现字符的次数
- 易车网的一道面试题:JS计算字符串中出现次数最多的字符和出现的次数
- JavaScript计算字符串中每个字符出现的次数
- 用es6的Array.reduce()方法计算一个字符串中每个字符出现的次数
- 还是利用Map特性,计算字符串里字符出现的次数(Javascript版-Obj特性)
- 黑马程序员------面试题 计算字符出现次数
- C# 计算字符串中每个字符出现的次数
- 计算字符串中每种字符出现的次数[Dictionary<char,int>泛型集合用法]