一段文本,如何统计汉字!!

解决方案 »

  1.   

    // 下例输出结果为 3 
    public static void Main()
    {
        string str = "abc中国人";
        int counter = ChineseLetterCount(str);
        Console.WriteLine(counter);
    }public static int ChineseLetterCount(string strText)
    {
        byte[] byts = System.Text.Encoding.GetEncoding("gb2312").GetBytes(strText);    return byts.Length - strText.Length;
    }
      

  2.   

    public class Class1
    {
    static void Main()
    {
    string s = "看a定界1";
    Regex regex = new Regex("[\u4e00-\u9fa5]");
    MatchCollection ms = regex.Matches(s);
    Console.WriteLine(ms.Count);
    }
    }
      

  3.   

    leonchenjian(小黑, 不知不觉大学只剩一年)的方法不错,很巧妙!lordych() 的方法有点危险,有空去查查Unicode标准,现在流行的u4e00-\u9fa5(9FFF)方法是不全的,CJK有部分字符没有在这个范围内。
      

  4.   

    赞楼上的方法。
    再来一种
                         string inputStr="哈哈哈test";
                         Char[] myChar=inputStr.ToCharArray();//转换为char数组
       int m=0;//汉字个数
       foreach(char i in myChar)
    {
       if(i>0x7f)
                                   m++;  //如果是汉字则m++
    }
    Console.WriteLine(m.ToString());
      

  5.   

    leonchenjian(小黑, 不知不觉大学只剩一年)的方法我觉得比我的差,若有韩文假名之类的
    能等到正确结果吗?
      

  6.   

    shrinerain(圣影雨):不好意思,你的方法也不敢赞同。首先,你的方法判断出的汉字数量会是实际数量的一倍(你忘记了汉字双字节了),其次直接判断字符值大于128也不能保证就是汉字。
      

  7.   

    给个Unicode的分布定义吧:不好意思,从程序的注视段直接提出来的,凑合看吧!//0000-1FFF General Scripts
    //2000-2DFF Symbols
    //2E00-33FF CJK Fhonetics and Symbols
    //3400-4DB5 CJK Extension A
    //4E00-9FFF CJK Ideographs
    //A000-A4CF Yi Syllables
    //AC00-D743 Hangul Syllables
    //D800-DFFF Surrogates
    //E000-D8FF Private Use
    //F900-FFFD Compatibility and Specials
      

  8.   

    在问一个问题: 一个字符占几个像素,一个汉字又占几个像素!!我写的程序是根据读取的数据来动态生成Label的高,然后显示它
      

  9.   

    to xyr:
    是不是一倍你运行试试就知道了,我敢保证你没有真正运行过我得程序。真正精确统计我不知道什么办法,繁体,简体,日文汉字怎么同时都统计???
      

  10.   

    我写的程序是根据读取的数据来动态生成Label的高,然后显示它--------------------------------------------------------Label.AutoSize = true; 就可以了。另外,Label.PreferredWidth 和 Label.PreferredHeight 属性可以得到宽度和高度。
      

  11.   

    字符占用像素好像有个专门的类方法,具体方法名记不清楚了--------------------------------------------------------是 Graphics.MeasureString(string text, Font font) 方法。
      

  12.   

    回复人: wuyi8808(air|skyiv.com) Label.AutoSize = true; 就可以了。另外,Label.PreferredWidth 和 Label.PreferredHeight 属性可以得到宽度和高度。--------------------------------------------------------
    可是只想高度可以自动,而宽固定呀,那要怎么写呢???
      

  13.   

    to k011003179(大海) 真正精确统计我还没见到什么软件可以。你用word,emeditor或其他文字软件打开同一篇文字,点字数统计,会发现基本上所有软件统计的字数都各不相同。
      

  14.   

    str.replace(/[\u4e00-\u9fa5]/g,"**").length
    就是str的汉字个数
      

  15.   

    string inputStr="哈哈哈test";
       Char[] myChar=inputStr.ToCharArray();//转换为char数组
       int m=0;//汉字个数
       foreach(char i in myChar)
       {
          if(i>'一' && i<'龤')
             m++;  //如果是汉字则m++
       }
       Console.WriteLine(m.ToString());
      

  16.   

    大家好,我想走软见开发这条路,不知道走 c/c++,C#和JAVA那条路好,请高手指点迷津。
    我是新手,请求帮助QQ-86443895
      

  17.   

    我以前用VB.NET写过一个小程序,用来统计一段文本中出现了哪些汉字,每个汉字出现了多少次,你需要的话,把邮箱给我,我把程序发给你
      

  18.   

    回复: ndhjx(你的好记性)