zoukankan      html  css  js  c++  java
  • C#字数统计(字母、数字、汉字、符号)

    namespace 测试1
    
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                this.richTextBox1.Text = "g你
    s
    s你好吗d   dsDDDDDDDDddssssss、‘\奇巧';‘l;''’’sssssssssssssssssssssssssssssssssssssssssssssssssssssssssasdddddddddddddddddddd	ddddddddddddddddddddddddddddddddddddddddddddddddda";
            }
    
            bool skipSpace = true;
    
            //窗口加载
            private void Form1_Load(object sender, EventArgs e)
            {
                richTextBox1.Focus();
                int cnt1=0, cnt2=0, cnt3=0, cnt4=0;
                if (this.richTextBox1.Text != null)
                {
                    string sLine;
                    string s = richTextBox1.Text;
                    if (skipSpace)
                    {
                        {
                            sLine = s.Replace(" ?", "").Replace(" ", "").Replace("	", "").Replace("
    ", "").Replace("
    ", "");
                            cnt2 += getByteLength(sLine);
                            cnt1 += getWordLength(sLine);
                            cnt3 += getdigitalLength(sLine);
                            cnt4 += getcharLength(sLine);
                            textBox5.Text = cnt1.ToString();//字数
                            textBox6.Text = cnt2.ToString();//字节数量(不含" ","	","
    ","
    "," ?")
                            textBox7.Text = cnt3.ToString();//数字数量
                            textBox8.Text = cnt4.ToString();//字母数量
                            textBox9.Text = (cnt2 - cnt1).ToString();//汉字数量
                            textBox10.Text = (cnt2 - cnt3 - cnt4 - (cnt2 - cnt1) * 2).ToString();//符号数量
                        }
                    }
                }
            }
    
            //richTextBox1.text内容改变事件
            private void richTextBox1_TextChanged(object sender, EventArgs e)
            {
                bool skipSpace = true;
                int cnt1=0, cnt2=0, cnt3=0, cnt4=0;
                if (this.richTextBox1.Text != null)
                {
                    string sLine;
                    string s = richTextBox1.Text;
                    if (skipSpace)
                    {
                        sLine = s.Replace(" ?", "").Replace(" ", "").Replace("	", "").Replace("
    ", "").Replace("
    ", "");
                        cnt2 += getByteLength(sLine);
                        cnt1 += getWordLength(sLine);
                        cnt3 += getdigitalLength(sLine);
                        cnt4 += getcharLength(sLine);
                        textBox5.Text = cnt1.ToString();//字数
                        textBox6.Text = cnt2.ToString();//字节数量(不含" ","	","
    ","
    "," ?")
                        textBox7.Text = cnt3.ToString();//数字数量
                        textBox8.Text = cnt4.ToString();//字母数量
                        textBox9.Text = (cnt2 - cnt1).ToString();//汉字数量
                        textBox10.Text = (cnt2 - cnt3 - cnt4 - (cnt2 - cnt1)*2).ToString();//符号数量
                    }
                }
            }
    
             /// <summary>
            /// 返回字数
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            private int getWordLength(string s)
            {
                if (s != null)
                    return s.Length;
                else
                    return 0;
            }
    
            /// <summary>
            /// 返回数字(0~9)字数数量
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            private int getdigitalLength(string s)
            {
                int lx = 0;
                char[] q = s.ToCharArray();
                for (int i = 0; i < q.Length; i++)
                {
                    if ((int)q[i] >= 48 && (int)q[i] <= 57)
                    {
                        lx += 1;
                    }
                }
                return lx;
            }
    
            /// <summary>
            /// 返回字母(A~Z-a~z)字数数量
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            private int getcharLength(string s)
            {
                int lz = 0;
                char[] q = s.ToLower().ToCharArray();//大写字母转换成小写字母
                for (int i = 0; i < q.Length; i++)
                {
                    if ((int)q[i] >= 97 && (int)q[i] <= 122)//小写字母
                    {
                        lz += 1;
                    }
                }
                return lz;
            }
    
            /// <summary>
            /// 返回字节数
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            private int getByteLength(string s)
            {
                int lh = 0;
                char[] q = s.ToCharArray();
                for (int i = 0; i < q.Length; i++)
                {
                    if ((int)q[i] >= 0x4E00 && (int)q[i] <= 0x9FA5) // 汉字
                    {
                        lh += 2;
                    }
                    else
                    {
                        lh += 1;
                    }
                }
                return lh;
            }
        }
    }

     摘自http://blog.csdn.net/ou832339/article/details/20343439

  • 相关阅读:
    二级菜单
    eclipse高版本中EasyExplore的替换插件OpenExplore
    Python学习一
    原型编程的基本规则
    【CF671D】 Roads in Yusland(对偶问题,左偏树)
    【洛谷4542】 [ZJOI2011]营救皮卡丘(最小费用最大流)
    【洛谷4313】 文理分科(最小割)
    【洛谷4001】 [ICPC-Beijing 2006]狼抓兔子(最小割)
    【洛谷2057】 [SHOI2007]善意的投票(最小割)
    【洛谷2053】 [SCOI2007]修车(费用流)
  • 原文地址:https://www.cnblogs.com/springcloud/p/7990085.html
Copyright © 2011-2022 走看看