欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#统计字符串的方法

程序员文章站 2023-11-14 23:40:22
本文实例为大家分享了c#字数统计(字母、数字、汉字、符号)的具体代码,供大家参考,具体内容如下 namespace 测试1 { public part...

本文实例为大家分享了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;
 }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。