C#字数统计(字母、数字、汉字、符号)

2021-04-24 00:55

阅读:327

标签:ips   git   span   form   pre   component   class   turn   int   

namespace 测试1

{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.richTextBox1.Text = "g你\rs\rs你好吗d   dsDDDDDDDDddssssss、‘\\奇巧‘;‘l;‘‘’’sssssssssssssssssssssssssssssssssssssssssssssssssssssssssasdddddddddddddddddddd\tddddddddddddddddddddddddddddddddddddddddddddddddda";
        }

        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("\t", "").Replace("\n", "").Replace("\r", "");
                        cnt2 += getByteLength(sLine);
                        cnt1 += getWordLength(sLine);
                        cnt3 += getdigitalLength(sLine);
                        cnt4 += getcharLength(sLine);
                        textBox5.Text = cnt1.ToString();//字数
                        textBox6.Text = cnt2.ToString();//字节数量(不含" ","\t","\n","\r"," ?")
                        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("\t", "").Replace("\n", "").Replace("\r", "");
                    cnt2 += getByteLength(sLine);
                    cnt1 += getWordLength(sLine);
                    cnt3 += getdigitalLength(sLine);
                    cnt4 += getcharLength(sLine);
                    textBox5.Text = cnt1.ToString();//字数
                    textBox6.Text = cnt2.ToString();//字节数量(不含" ","\t","\n","\r"," ?")
                    textBox7.Text = cnt3.ToString();//数字数量
                    textBox8.Text = cnt4.ToString();//字母数量
                    textBox9.Text = (cnt2 - cnt1).ToString();//汉字数量
                    textBox10.Text = (cnt2 - cnt3 - cnt4 - (cnt2 - cnt1)*2).ToString();//符号数量
                }
            }
        }

         /// 
        /// 返回字数
        /// 
        /// 
        /// 
        private int getWordLength(string s)
        {
            if (s != null)
                return s.Length;
            else
                return 0;
        }

        /// 
        /// 返回数字(0~9)字数数量
        /// 
        /// 
        /// 
        private int getdigitalLength(string s)
        {
            int lx = 0;
            char[] q = s.ToCharArray();
            for (int i = 0; i )
            {
                if ((int)q[i] >= 48 && (int)q[i] 57)
                {
                    lx += 1;
                }
            }
            return lx;
        }

        /// 
        /// 返回字母(A~Z-a~z)字数数量
        /// 
        /// 
        /// 
        private int getcharLength(string s)
        {
            int lz = 0;
            char[] q = s.ToLower().ToCharArray();//大写字母转换成小写字母
            for (int i = 0; i )
            {
                if ((int)q[i] >= 97 && (int)q[i] 122)//小写字母
                {
                    lz += 1;
                }
            }
            return lz;
        }

        /// 
        /// 返回字节数
        /// 
        /// 
        /// 
        private int getByteLength(string s)
        {
            int lh = 0;
            char[] q = s.ToCharArray();
            for (int i = 0; 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

C#字数统计(字母、数字、汉字、符号)

标签:ips   git   span   form   pre   component   class   turn   int   

原文地址:http://www.cnblogs.com/springcloud/p/7990085.html


评论


亲,登录后才可以留言!