A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qly2046 中级黑马   /  2013-12-16 19:56  /  1106 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qly2046 于 2013-12-20 15:30 编辑

计算字符串中每种字符出现的次数。“Welcome to Chinaworld”,不区分大小写,打印“W 2”“e 2”“l 3”……

评分

参与人数 2技术分 +1 黑马币 +5 收起 理由
V_John + 1
乔兵 + 5

查看全部评分

4 个回复

倒序浏览
本帖最后由 再起来 于 2013-12-17 10:25 编辑
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             string str = "Welcome to ChinaWorld";
  6.             string[] strs = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);//去掉空格
  7.             string str1 = string.Join("", strs);//将去掉空格的字符串数组拼接成一个字符串
  8.             #region MyRegion
  9.             // HashSet<char> set=new HashSet<char>();
  10.             // foreach (char ch in str1)
  11.             // {
  12.             //     set.Add(ch);
  13.             // }
  14.             //char[] chs= set.ToArray();
  15.             //string str2="";
  16.             //for (int i = 0; i < chs.Length;i++ )
  17.             //{
  18.             //    str2 += chs[i];
  19.             //}
  20.             #endregion
  21.             int[] count=new int[str1.Length];//定义一个数组,用来存储字符串每个字符出现的次数
  22.             for (int i = 0; i < str1.Length;i++ )//依次找出字符串中每个字符出现的次数
  23.             {
  24.                 int time=0;//字符出现的次数
  25.                 int position=-1;
  26.                 do
  27.                 {
  28.                     position=str1.IndexOf(str1[i],position+1);
  29.                     if (position!=-1)
  30.                     {
  31.                         time++;
  32.                     }
  33.                 } while (position!=-1);
  34.                 count[i] = time;
  35.             }
  36.             for (int i = 0; i < str1.Length;i++ )
  37.             {
  38.                 Console.Write("\"{0}{1}\"\t", str1[i], count[i]);
  39.             }
  40.             Console.ReadKey();
  41.         }
  42.     }
复制代码

S~3[56UESIW~I)SH(B$9$M6.jpg (16.7 KB, 下载次数: 6)

S~3[56UESIW~I)SH(B$9$M6.jpg

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
亲,你要记得把帖子编辑成已经解决哈,不然木有加分哟
回复 使用道具 举报
string str = "Hello World";
            Dictionary<char, int> dic = new Dictionary<char, int>();
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i] == ' ')
                {
                    continue;
                }
                if (dic.ContainsKey(str[i]))
                {
                    dic[str[i]]++;
                }
                else
                {
                    dic.Add(str[i], 1);
                }
            }
            foreach (KeyValuePair <char,int>kv in dic)
            {
                Console.WriteLine("字符{0}{1}次",kv.Key,kv.Value);
            }
            Console.ReadKey();
通过循环添加到集合中输出就ok了

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马