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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑丹丹1990 中级黑马   /  2013-4-23 16:53  /  2991 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郑丹丹1990 于 2013-4-24 08:55 编辑

例如:传智播客欢迎您,欢迎到传智博客学习。统计“传智博客”出现的次数

13 个回复

倒序浏览
我也是刚学习,下面是我写的,希望能帮到你。

            string zi = "传智播客欢迎您,欢迎到传智播客学习";
            char[] num = zi.ToArray(); //转换成char类型的数组
            int[] chishu = new int[num.Length];//用来储存每个字符出现的次数
            for (int a = 0; a < num.Length; a++)
            {
                for (int b = a; b < num.Length; b++)
                {
                    if (num[a] == num[b] && a != b)
                    {
                        chishu[a] = chishu[a] + 1;
                        num[b] = '!';//把已经比较的字做个标记
                    }
                }
            }

            for (int i = 0; i < num.Length; i++)
            {
                if (num[i] != '!')
                {
                    Console.WriteLine("{0}{1}", num[i], chishu[i] + 1);
                }
            }

点评

是统计“传智播客”出现的次数。  发表于 2013-4-23 17:40
回复 使用道具 举报
static void Main(string[] args)
        {
            string str = "传智播客欢迎您,欢迎到传智播客学习";
            str = str.Replace("传智播客", "A");//用字母A代替“传智播客”
            string[] strs = str.Split('A');    //俺A把字符串分成几个字符串存到数组中
            int times = strs.Length - 1;       //A出现的次数就是“传智播客”出现的次数,A出现的次数为数组长度减1
            Console.WriteLine(times);
            Console.ReadKey();
        }
回复 使用道具 举报
本帖最后由 李君言 于 2013-4-23 18:57 编辑

还没有学会别的代码,然后又写了个,不知道思路对不对。

            string chuan = "传智播客";
            string zi = "传智播客欢迎您,欢迎到传智播客学习";

            int sum = 0;
            for (int a = 0; a < zi.Length; a++)
            {
                if (zi[a] == chuan[0] && zi[a+1] == chuan[1] && zi[a+2] == chuan[2] && zi[a+3] == chuan[3])
                {
                    sum++;
                }
            }
            Console.WriteLine("出现的次数为{0}",sum);
回复 使用道具 举报
李君言 发表于 2013-4-23 18:55
还没有学会别的代码,然后又写了个,不知道思路对不对。

            string chuan = "传智播客";

:handshake
回复 使用道具 举报
风雪再现 发表于 2013-4-23 18:05
static void Main(string[] args)
        {
            string str = "传智播客欢迎您,欢迎到传智播客学 ...

非常好!
回复 使用道具 举报
代码楼上说了,我说一下思路:
主要利用TreeMap的知识,TreeMap存储的Key-Value键值对,以字符作为键key、该字符出现的次数为值value,存入Map集合对象,该过程中,
如果key已存在,则取出对应的value值+1,再次将新的key-value键值对存入集合对象,如果key值不存在,则存入的value值为1。下面迭代输出就可以了。希望能帮到您
回复 使用道具 举报
最经典的是字符匹配算法(KMP算法),算法与数据结构里的经典算法之一,我之前做过,现在记得不是太清楚了,楼主有时间可以查一下这个算法
回复 使用道具 举报
wangyougu010 发表于 2013-4-23 20:40
代码楼上说了,我说一下思路:
主要利用TreeMap的知识,TreeMap存储的Key-Value键值对,以字符作为键key、 ...

:handshake
回复 使用道具 举报
xiaohu1218 发表于 2013-4-23 21:14
最经典的是字符匹配算法(KMP算法),算法与数据结构里的经典算法之一,我之前做过,现在记得不是太清楚了 ...

:handshake
回复 使用道具 举报
风雪再现 发表于 2013-4-23 18:05
static void Main(string[] args)
        {
            string str = "传智播客欢迎您,欢迎到传智播客学 ...

你这个方法有一定的漏洞,比如“传智播客在开头和尾部就不可以了”
回复 使用道具 举报
郑丹丹1990 发表于 2013-5-7 16:23
你这个方法有一定的漏洞,比如“传智播客在开头和尾部就不可以了”

在开头和结尾的时候,分出来的字符串是空格,但是还是有字符串的,我验证过的
回复 使用道具 举报
风雪再现 发表于 2013-5-7 17:54
在开头和结尾的时候,分出来的字符串是空格,但是还是有字符串的,我验证过的 ...

好,我的疏忽。
回复 使用道具 举报
风雪再现 发表于 2013-4-23 18:05
static void Main(string[] args)
        {
            string str = "传智播客欢迎您,欢迎到传智播客学 ...

很新颖的方法哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马