大哥们,小弟最近在编写记事本。。
有个功能不清楚到底该用思想解决:怎么统计编辑文本中的汉字。。
                                还有统计文本中的行数怎么解决。。(整个问题是 Word 中的“字数统计”内容的实现)

解决方案 »

  1.   

    string.Legth是字符数
    for循环string[i],判断每个char,<0或者>255就认为是中文
    Encoding.GetEncoding("gb2312").GetByteCount(string)是字节数,也可以用utf8等其他编码统计
    string.Split('\n').Length是行数
      

  2.   

    这个得学习下
    “判断每个char, <0或者>255就认为是中文”这个方法不太好吧,如果是其他特殊字符呢
    最好能有精确判断某个字符是否为汉字的方法
    期待高手
      

  3.   

    System.Text.Encoding.Default.GetBytes(“”).Length
      

  4.   

    这里处理足够了,非要严格匹配汉字,不计成本的用正则也行:
    Regex.Matchs(string,"[\u4e00-\u9fa5]").Count
      

  5.   

    自动换行本身就不能算行数。
    统计文本框内的实际行数,要用API:
    声明:
            public const int WM_USER = 0x400;
            public const int EM_GETLINECOUNT = WM_USER + 10;
            [DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi)]
            public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);调用:
              int linecount=  SendMessage(textBox1.Handle, EM_GETLINECOUNT, 0, 0);
      

  6.   


    GOOD.好强大的sendmessage();
    非常感谢大家帮助。。问题解决!!!