博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#计算含中文字符串的长度
阅读量:6209 次
发布时间:2019-06-21

本文共 1397 字,大约阅读时间需要 4 分钟。

近日在工作中正好遇见了判断是否为中文字符的问题,把代码写上来,方便记忆

 

using System;using System.Text.RegularExpressions;namespace StrTest{    class Program    {        static void Main(string[] args)        {            int strLength = 0;            //半角            string testStr = "这是TEST";            strLength = GetStrLength(testStr);            Console.WriteLine("str:{0},len:{1}", testStr, strLength);            //全角            testStr = "TEST全角";            strLength = GetStrLength(testStr);            Console.WriteLine("str:{0},len:{1}", testStr, strLength);            Console.Read();        }        ///         /// 获取实际占用长度        ///         /// 字符串        /// 
真实长度
static int GetStrLength(string str) { int strLength = 0; //中文字符正则 Regex rx = new Regex("^[\u4e00-\u9fa5]$"); //全角字符正则 Regex rx1 = new Regex("^[\uFF00-\uFFFF]$"); for (int i = 0; i < str.Length; i++) { if (rx.IsMatch(str[i].ToString()) || rx1.IsMatch(str[i].ToString())) {
//如果为中文字符或全角字符,字符串长度加2 strLength += 2; } else {
//否则加1 strLength += 1; } } return strLength; } }}

以下这是结果:

这段代码只适用于中文字符和英文字符以及半角字符同时存在的情况,其他文字的情况并未进行测试

转载于:https://www.cnblogs.com/PandaPYH/p/3669921.html

你可能感兴趣的文章
js的数据类型
查看>>
【转】Oracle/PLSQL: Decode Function
查看>>
读书是为了生命的完整
查看>>
使用位运算计算两个整数的加减
查看>>
你真的会玩SQL吗?查询指定节点及其所有父节点的方法
查看>>
Redis密码管理
查看>>
java 反射
查看>>
Billboard虐心啊
查看>>
浅谈我对java.lang.reflect包中的动态代理对象Proxy的理解
查看>>
EDM开发之三:其他功能
查看>>
POJ - 2031 Building a Space Station(计算几何+最小生成树)
查看>>
MySQL 基本语法(1.表字段操作,2表记录管理 3.运算符管理4.SQL查询 5.约束6.索引...
查看>>
Vue+webpack项目的多环境打包配置
查看>>
1.3 ODPS
查看>>
20181205关于android动态权限管理的总结与思考。
查看>>
吴忠军 - ps如何做动画
查看>>
linux备份mysql文件并恢复的脚本,以及其中出现的错误:ERROR: ASCII '\0' appeared in the statement...
查看>>
crontab查看执行结果,删除指定定时任务
查看>>
javascript之数组操作
查看>>
centos7下安装mysql
查看>>