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();//符号数量
                }}}/// <summary>/// 返回字数/// </summary>/// <param name="s"></param>/// <returns></returns>private int getWordLength(string s){if (s != null)return s.Length;elsereturn 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

转载于:https://www.cnblogs.com/springcloud/p/7990085.html

C#字数统计(字母、数字、汉字、符号)相关推荐

  1. Java正则校验密码至少包含:字母数字特殊符号中的2种

    一.语法 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如, n匹配字符 n.\n 匹配换行符.序列 \\\\ 匹配 \\ ,\\( 匹配 (. ^ 匹配输入字符串开始的位 ...

  2. FPGA-基于UART的QVGA显示(一)(实现PC端发送字母数字汉字的分别显示)

    基础:由PC通过UART发送数据在VGA显示.数据可以为字母,数字,汉字(任选10个字),VGA分为左右两个区域,输入字母或者数字时在VGA左边显示,输入汉字时在VGA右边显示. 发挥:有删除功能,可 ...

  3. c语言:输入一个字符串,统计字母,数字,空格出现的个数,c - 统计字符串字母,空格,数字,其他字符的个数和行数....

    #include #include using namespace std; /* 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. */ void count() { //统 ...

  4. c语言统计字母数字符号个数程序,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include main() { int acount=0,bcount=0,ccount=0,dcount=0; char a; printf(&qu ...

  5. 实现用户名字母数字大小写符号(正则表达式)

    正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex.regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为&qu ...

  6. 验证码的三种做法[纯数字][纯汉字][字母\数字\汉字混合]C#

    效果如图(我确实懒了点,按纽的名字都没有改,哈哈) 需要说明的是,因为提交对比后,页面是重新刷新了,所以文本框里面看见的和后面图片显示不一样,这个不需要太多说明吧!! 混合模式刷新出现约界错误 已经被 ...

  7. 基于STM32CubeMX的stm32f103c6t6液晶0.96OLED显示字母数字汉字图片显示

    在STM32CubeMX里建工程,利用HAL库stm32F103c6t6连0.96寸的OLED液晶显示数字字母汉字图片.stm32f103c8t6,stm32f103zet6系列都可以参考下面的即可成 ...

  8. 《征信业务管理办法》实施一周年丨征信报告里的字母数字和符号怎么看?

    如今,征信报告在我们生活中的重要性已是不言而喻.个人征信报告已成为我们 第二张"身份证",一旦失信不仅影响个人信贷,还会影响日常工作和生活. 个人征信报告的内容主要分为以下六大部分 ...

  9. 10-20位随机字母数字特殊符号密码

    需求:点击按钮,生产随机密码,同时对用户输入的密码进行规则校验 规则:10-20位密码且必须包含至少一个字母.数字.(!@#$%^&*()_+)特殊字符 规则校验: 调用方法:validate ...

  10. 字数统计,一个英文字母算一个字,一个汉字算一个字,一个符号算一个字

    //============================================================================= // // 字数统计,一个英文字母算一个 ...

最新文章

  1. 会议报名丨CSSNLP 2020 第一届中国自然语言处理学生研讨会开放注册
  2. Learning C# by Developing Games with Unity 5.x(2nd) 学习
  3. qtplaintextedit如何删除内容_(mac常见问题)如何删除 Mac 储存空间的其他选项?...
  4. ANDROID 开发常用的框架、工具、API最全集合
  5. C语言基本类型和存储类别
  6. 关于pagehelper分页
  7. python中的参数函数_python中函数与参数的简介
  8. 计算机的指令合成为,第二章计算机操作基础知识doc
  9. web安全的学习路线
  10. Redis数据结构详解之Zset(五)
  11. C++Primer 学习笔记之关联容器
  12. Thinking in Java 9.9 接口与工厂
  13. shell获取git最近一次提交信息_我低估了PowerShell:一个提取Git提交记录并生成文件Diff列表的脚本案例...
  14. 用gdb调试动态链接库
  15. accton 打开或关闭进程统计
  16. Acwing-4656. 技能升级
  17. 基于python的证件照_不到20行实现Python代码即可制作精美证件照
  18. 关于若依框架多级菜单的设置
  19. 系统调优之四大天王——快来瞧瞧~
  20. 计算机主机机箱连接各部件,电脑的各部件组装都是用什么联接的

热门文章

  1. 【郭林专刊】10个步骤让你成为高效的Web开发者
  2. 我才知道wordpress还有com和org的区别呢
  3. [SQL] Query mystore start [ERR] 1005 - Can't create table 'mystore.admin' (errno: 150)
  4. oracle for循环_浅谈Oracle的执行计划
  5. 服务器会自动创建cookie,网站的cookie机制是什么
  6. SQLite中的高级SQL
  7. linux 改成utc时间_C++下四种常用的程序运行时间的计时方法总结
  8. python 九宫重排_[蓝桥杯][历届试题]九宫重排 (Python代码)(bfs+集合)
  9. Debug pip: Could not build wheels for _ which use PEP 517 and cannot be installed directly - Easy So
  10. html5和前端精要(1)-架构与基础(1)