C#统计字符串的方法

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

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

标签:C#,统计,字符串
0
投稿

猜你喜欢

  • android 中 webview 怎么用 localStorage

    2023-04-28 04:38:36
  • ChatGPT介绍及Java API调用

    2021-07-06 07:53:55
  • 图文详解OkHttp的超时时间

    2022-05-14 13:50:23
  • C#中Json反序列化的实现方法

    2022-07-16 04:34:19
  • C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)

    2023-02-14 03:53:36
  • Java实战员工绩效管理系统的实现流程

    2021-11-20 19:04:28
  • Spring MVC整合 freemarker及使用方法

    2022-06-06 16:41:41
  • IDEA导入外部项目报Error:java: 无效的目标发行版: 11的解决方法

    2021-08-25 03:02:27
  • java开发MVC三层架构上再加一层Manager层原理详解

    2023-06-14 06:10:51
  • Maven将代码及依赖打成一个Jar包的方式详解(最新推荐)

    2022-03-31 06:52:47
  • 利用AOP实现SqlSugar自动事务

    2021-11-24 11:56:42
  • Android利用AsyncTask异步类实现网页内容放大缩小

    2022-11-28 05:34:47
  • android module解耦组件化总体概述(推荐)

    2021-11-29 19:46:34
  • Java使用动态规划算法思想解决背包问题

    2022-12-02 03:53:49
  • Java 的 FileFilter文件过滤与readline读行操作实例代码

    2022-04-09 07:22:53
  • Java Apollo是如何实现配置更新的

    2023-09-26 13:55:18
  • Tomcat内存溢出分析及解决方法

    2023-11-12 23:24:47
  • c#读取文件详谈

    2023-03-04 14:47:30
  • Android RxJava创建操作符Interval

    2023-08-14 01:26:24
  • Java实现简单猜拳游戏

    2023-05-27 18:28:16
  • asp之家 软件编程 m.aspxhome.com