您现在的位置:龙卷风首页 ›› 网络编程 ›› 阅读文章

c# 计算字符串长度及截取字符串{asp.net}

C# 计算字符串长度 截取中英文混合的字符串:

把文章标题列表显示在网站首页,经常会碰到要截取标题字符串的情况。c#中字符串的length属性默认是按unicode编码来计算字符的,即不管是中文字符,还是英文字符,统统按一个单位来计算,substring也是同样的情形。

问题来来:如果是单纯一种字符那么好办,可以得到你想要的结果,但如果是中英文混合的,就有些问题了,字符串的实际占用长度变得不可预测,因为中文字符的长度占用是英文字符的2倍。

下面是用以代替substring方法的方法:

代码如下
  1.         //限制字符数
  2.         public static string Fix(string s, int len)
  3.         {
  4.             string result = ""; //最终返回的结果
  5.             int byteLen = System.Text.Encoding.Default.GetByteCount(s);  //单字节字符长度
  6.             int charLen = s.Length; //把字符平等对待时的字符串长度
  7.             int byteCount = 0;  //记录读取进度{中文按两单位计算}
  8.             int pos = 0;    //记录截取位置{中文按两单位计算}
  9.             if (byteLen > len)
  10.             {
  11.                 for (int i = 0; i < charLen; i++)
  12.                 {
  13. 我来说两句

    内容/Content