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


猜你喜欢
- XY个人记SparkSQL是spark的一个模块,主入口是SparkSession,将SQL查询与Spark程序无缝混合。DataFrame
- 什么是水仙花数:指一个n位数,其各位数字的n次方之和确好等于该数本身例如:? ?1? ? ? ? ?1^1=1;153? ? ? 3^3+5
- gcc 命令使用 gcc 编译 c语言-c 编译、汇编到目标代码,不进行链接,也就是直接生成目标文件-o 将输出的文件以指定文件名来储存,有
- 前言本文主要写的是:springboot下ueditor上传功能的实现及遇到的一些问题的处理整体项目结构展示Springboot整合uedi
- 问题描述输入一个链表,输出该链表中倒数第k个结点。(尾结点是倒数第一个)结点定义如下:public class ListNode { &nb
- PowerMockito 测试静态方法假如有下面一个类DemoStatic,它里面定义了各种静态方法,这些静态方法可能是一些Utilitie
- 在进行Android系统开发的时候,有些特定的情况需要设置系统永不锁屏,永不休眠。本篇文章给大家介绍Android 永不锁屏,开机不锁屏,删
- 大多数android程序员应该都知道genymotion是一个不错的模拟器,体积小巧,启动速度快。相关的博客也比较多,但是一直以来无法解决a
- 本篇紧接上一篇内容继续,还是从继承里的细节开始1.代码块初始化关于代码块的定义和使用因为之前已经进行过介绍,所以这里就不再赘述,我们所关注的
- 一、前言最近自己在学习Spring boot的过程中开发了一个组件 multithreadpool-spring-boot-starter,
- springboot项目没有mainClass实现打包运行项目分为两个部分,一个是业务代码模块,一个是框架模块,运行class放在框架部分,
- 演示代码如下:package swt_jface.demo11; import org.eclipse.swt.SWT; import or
- 今天我们来编写一个缩放效果的ImageView ,网上有很多人都讲了这些。但有许多人都直接使用了库文件,那么我们今天做的是直接上代码编写一个
- 前言我们从以下几个方面研究:SpringBoot的启动依赖启动器starter有什么作用启动引导类是怎么运行的内置的tomcat服务器原理p
- 本文实例讲述了C#冒泡法排序算法。分享给大家供大家参考。具体实现方法如下:static void BubbleSort(IComparabl
- 最近做的一个小项目中有这样的需求:整个项目有一份config.json保存着项目的一些配置,是存储在本地文件的一个资源,并且应用中存在读写(
- 背景数据之间两两趋势比较在数据分析应用中是非常常见的应用场景,如下所示:模拟考批次班级学生语文数学英语202302三年一班张小明130145
- 前言又没什么好的思路,还是随便写一些,所以这次就来整点活。我们都知道Activity的跳转拥有默认的跳转动画,或者把这个默认的动画给取消,就
- 因项目集成了Redis缓存部分数据,需要在程序启动时将数据加载到Redis中,即初始化数据到Redis。在SpringBoot项目下,即在容
- Spring Boot 异常处理异常处理是一种识别并响应错误的一致性机制,异常机制可以把程序中的异常处理代码和正常的业务逻辑代码分离,包装程