zoukankan      html  css  js  c++  java
  • C# 字数统计(word count)

    1、Regex.Matches(s, @"[A-Za-z0-9][A-Za-z0-9'\-.]*").Count (英文单词连词算一个单词)

    Regex.Matches(s, @"[A-Za-z0-9][A-Za-z0-9\-.]*").Count (英文单词连词不算一个单词)

    2、           string[] str=FilterHtml(content).Split("~!@#$%^&*()_+-=`|\\:\"?><;',./ ".ToCharArray());

                    int i=0;

                    foreach (string s in str)

                    {

                        if (s.Length == 0)

                            i++;

                    }

                    count = str.Length - i;

    其中第2种方法的缺点不能统计数字字数 比如123.456他会当两个单词,以上方法只适用英文字数统计

    3、Regex.Matches(txtContent.Text, @"[\W]+").Count 中文字数

    Regex.Matches(strContent, @"[0-9][0-9'\-.]*").Count 数字字数

    中文字数统计:

        public static int ChineseLetterCount(string strText)
        {
            byte[] byts = System.Text.Encoding.GetEncoding("gb2312").GetBytes(strText);
     

            return byts.Length - strText.Length;

        }

    以上都是近似统计

     英文字数统计已经很精确了,中文字数统计误差有点大,还有待改进

    不过我在做对比测试的发现word2010统计有一点bug:

    请看以下测试用例:

    "I looked at it and said, 'We'll be back in a few days,' " Byron Largent said of the china. (word2010里面字数统计为20)

    而我写的正则统计为19不知道谁对谁错

    注意:连词算一个不算两个哦,那看来微软吧连词不算一个单词

     
  • 相关阅读:
    修改linux下某一个文件夹下所有文件内容
    jenkins对结果进行断言问题
    linux 循环处理文件夹下所有文件脚本
    LR java Vuser 相关依赖JAR包,配置文件处置方法
    Jmeter函数 唯一取值 笔记
    jmeter+java vuser+rmi+dubbo脚本
    eclipse快捷键
    猫狗队列
    用固定长度的数组实现stack queue
    两个单链表相交的问题
  • 原文地址:https://www.cnblogs.com/tewuapple/p/2570893.html
Copyright © 2011-2022 走看看