那位高手.给我请教..
   c#有没有自己带的这样一个函数,就是说很快地算出文本中一共有多少个逗号,句号.什么的....
谢谢 

解决方案 »

  1.   

    string[] arr=str.Split(new Char[]{','})
    arr.length
    计算字符串重复次数
    http://topic.csdn.net/u/20110119/17/cbb2a1c1-1e8a-4357-a052-afa5b8b87b8e.html
      

  2.   

    本帖最后由 lxcnn 于 2011-02-07 23:06:04 编辑
      

  3.   

    用正则表达式吧,很快的。
    先把文本读出来   using(StreamReader reader=new StreamReader(string filePath))
    {
     string str=reader.ReaderToEnd();
     int count = Regex.Matches(str, ",").Count;
     MessageBox.Show(Count.ToString());
    }
      

  4.   

    Replace方法的效率绝对不低的,不信可以测试下,我们要用数据说话。Replace方法是在底层用指针实现的。
      

  5.   

    一个20000个字符的字符串,用Replace方法实现,在我的机器上只用了0毫秒。
      

  6.   

    而用正则的方法int count = Regex.Matches(yourStr, ",").Count
    却花费了5~8个毫秒。测试数据完全相同。
      

  7.   


    可能是我上面说得太简略了,如果只是单次统计,那么上面提到的任意方法都可以满足要求,也不会涉及到所谓的效率问题了,这种情况下提效率也没有意义
    一般涉及到效率问题时,实际应用中一般是大数据量处理,循环或频繁调用的方法中涉及,Replace要重新分配内存,所以不推荐
      

  8.   

    Replace要重新分配内存,这是什么意思?难道Regex就不要分配内存了?这个说法没道理的。要以实际的数据说事,不要主观臆断。
      

  9.   

    本帖最后由 lxcnn 于 2011-02-08 18:01:21 编辑
      

  10.   


    如果是计算逗号数量的话,结果应该是 arr.length-1
      

  11.   

    string[] arr=str.Split(new Char[]{','})
    arr.length
    计算字符串重复次数