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#,统计,字符串
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
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
![](https://img.aspxhome.com/file/2023/6/71636_0s.png)
C#中Json反序列化的实现方法
2022-07-16 04:34:19
C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)
2023-02-14 03:53:36
![](https://img.aspxhome.com/file/2023/0/96370_0s.png)
Java实战员工绩效管理系统的实现流程
2021-11-20 19:04:28
![](https://img.aspxhome.com/file/2023/1/81941_0s.jpg)
Spring MVC整合 freemarker及使用方法
2022-06-06 16:41:41
IDEA导入外部项目报Error:java: 无效的目标发行版: 11的解决方法
2021-08-25 03:02:27
![](https://img.aspxhome.com/file/2023/4/62704_0s.png)
java开发MVC三层架构上再加一层Manager层原理详解
2023-06-14 06:10:51
![](https://img.aspxhome.com/file/2023/1/60371_0s.jpg)
Maven将代码及依赖打成一个Jar包的方式详解(最新推荐)
2022-03-31 06:52:47
![](https://img.aspxhome.com/file/2023/3/103843_0s.png)
利用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
![](https://img.aspxhome.com/file/2023/7/89497_0s.png)
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