如何用.NET C#获取汉字个数?

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

一、字符编码的基本概念

字符编码(Character Encoding)指的是将字符映射到二进制数据的过程。计算机本身只能处理二进制数据,因此需要将人类可读的字符转换为计算机可读的数字。

在.NET C#编程中,常见的字符编码方式有ASCII、UTF-8、UTF-16等。相比较而言,UTF-8能够支持更多的字符,并且对于汉字等复杂文字能够提供更好的兼容性。因此,在本文中,将以UTF-8作为默认的字符编码方式进行讲述。

二、汉字个数获取的基本原理

在.NET C#编程中,要获取汉字个数,需要先将待统计的字符串转换为字符数组(char[]),然后通过遍历每一个字符,判断其是否为汉字来进行计算。

具体而言,判断字符是否为汉字,需要根据UTF-8编码方案中的编码规则来进行解析,即:

当一个字节的最高两位为“10”时,该字节不是汉字的首字节;

当一段连续的字节的最高两位均为“11”时,该段字节表示一个汉字。

根据上述规则,可以编写如下的代码实现汉字个数的获取:

public static int GetChineseCharCount(string str)
{
    char[] charArr = str.ToCharArray();
    int totalCount = 0;
    
    for (int i = 0; i < charArr.Length; i++)
    {
        if ((charArr[i] & 0xff80) != 0 && (charArr[i] & 0xff00) != 0)
        {
            totalCount++;
        }
    }
    return totalCount;
}

三、.NET C#代码实现过程

1.新建一个控制台应用程序;

2.在Program.cs文件中,添加如下代码:

static Main(string[] args)
{
    string testStr = "这是一个测试字符串!Hello, world!";
    int chineseCharCount = GetChineseCharCount(testStr);
    Console.WriteLine($"待统计字符串:{testStr}\n汉字个数为:{chineseCharCount}");
    Console.ReadKey();
}

public static int GetChineseCharCount(string str)
{
    char[] charArr = str.ToCharArray();
    int totalCount = 0;

    for (int i = 0; i < charArr.Length; i++)
    {
        if ((charArr[i] & 0xff80) != 0 && (charArr[i] & 0xff00) != 0)
        {
            totalCount++;
        }
    }
    return totalCount;
}

3.运行程序,查看结果。

也可以直接通过正则的方式获取:

        public int CharCount(string txt)
        {
            ArrayList itemList = new ArrayList();
            CharEnumerator CEnumerator = txt.GetEnumerator();
            Regex regex = new Regex("^[\u4E00-\u9FA5]{0,}$");
            while (CEnumerator.MoveNext())
            {
                if (regex.IsMatch(CEnumerator.Current.ToString(), 0))
                    itemList.Add(CEnumerator.Current.ToString());
            }
            return itemList.Count;
        }

效果如下:

附件:下载该文件资源,减少时间成本(增值服务)
不商用,只限学习使用,使用后请删除
上传者拥有该资源完整版权,下载既表明已授权您可以进行报备商用,无报备或者使用后报备,视为侵权,报备后使用,为合法有效使用,报备方式,下载后,在下载列表,点击报备,填写使用场景即可
File Source
.rar
173.01 KB
文件部分展示图(单击放大)
如何用.NET C#获取汉字个数?如何用.NET C#获取汉字个数?
留言
该资源可下载
File Source
.rar
173.01 KB
如何用.NET C#获取汉字个数?如何用.NET C#获取汉字个数?
最新结算
股权转让协议意向书模板
类型: .docx 金额: CNY 2.23¥ 状态: 待结算 详细>
股权转让协议意向书模板
类型: .docx 金额: CNY 0.28¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 2.39¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 0.3¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章