惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
V
V2EX
T
The Blog of Author Tim Ferriss
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Hugging Face - Blog
Hugging Face - Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
Recent Announcements
Recent Announcements
Vercel News
Vercel News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
美团技术团队
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks

博客园 - guanfei

如何用Nero刻录ape(带cue)cd镜像?详细点,下载啥,装到哪里 Managing assembly version numbers using Visual Studio .NET and Visual SourceSafe RMA是什么 Page.RegisterClientScriptBlock和Page.RegisterStartupScript有何区别 - guanfei - 博客园 button style - guanfei - 博客园 SQL-SERVER取得中文拼音的函数 DesignMode :: Windows Forms designer and DesignMode property issues 项目管理相关 什么是毅力? The 30 Minute Regex Tutorial Exception 的性能的影响不大。 调试WebService的一个很好的工具 漫谈C#编程中的多态与new关键字 Object synchronization method was called from an unsynchronized block of code. 关于C#中timer类 BUG: The Elapsed event of the System.Timers.Timer class is not raised in a Windows service 全文搜索参考 sql 2000 2005 创建全文索引, 中文的需要中文版的sql sql server 2000 全文索引全解(配合ASP.NET)
C#区分中英文统计字符串的长度
guanfei · 2007-08-19 · via 博客园 - guanfei

转 http://blog.5iaspx.com/article.asp?id=312

我们都知道C#中的string自已有一个Length属性,用来统计字符串的长度,如果字符都是中文或都是英文,那没什么问题,但如果出现中英文混合的 情况,我们的统计结果就不太准确了,因为在计算机中,中文占两个字节的空间,英文占一个字节的空间,而string的Length不具备区分中英文的功 能,所以它计算出来的长度并不准确,如我们在网页上显示字符时,有时候不能超过一定的长度,如果字符串是中英文混合,那载取的字符串长短不一,严重影响美 观。

    当然,我们可以用一种非常简单的方法来计算字符串的长度,而且是中文算两个字符,英文算一个字符,下面给出我一直在用的一个方法的源代码,供大家参考:

      /// <summary>  
      /// 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
      /// </summary>
      /// <param name="Text">需计算长度的字符串</param>
      /// <returns>int</returns>
      public int Text_Length(string Text)
      {
            int len=0;

            for(int i=0;i<Text.Length;i++)
            {
                byte[] byte_len = Encoding.Default.GetBytes(Text.Substring(i,1));
                if(byte_len.Length>1)
                    len += 2; 

//如果长度大于1,是中文,占两个字节,+2
                else
                    len += 1;  //如果长度等于1,是英文,占一个字节,+1
            }

            return len;
        }

    当然别忘了加上'using System.Text;',对System.Text的引用哦!!!