本文实例为大家分享了c#字数统计(字母、数字、汉字、符号)的具体代码,供大家参考,具体内容如下
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; 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; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析
网友评论