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;

}

}

}

以上是 C#统计字符串的方法 的全部内容, 来源链接: utcz.com/z/346283.html

回到顶部