软件编程
位置:首页>> 软件编程>> C#编程>> C#统计字符串的方法

C#统计字符串的方法

作者:茗香淡然  发布时间:2021-06-12 17:00:12 

标签:C#,统计,字符串

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

来源:https://blog.csdn.net/ou832339/article/details/20343439

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com