[C#] C#区分中英文按照指定长度截取字符串 →→→→→进入此内容的聊天室

来自 , 2020-01-05, 写在 C#, 查看 123 次.
URL http://www.code666.cn/view/746b02b6
  1. /// <summary>  
  2.         /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度
  3.         /// </summary>
  4.         /// <param name="str">待截取的字符串</param>
  5.         /// <param name="length">需计算长度的字符串</param>
  6.         /// <returns>string</returns>
  7.         public static string GetSubString(string str, int length)
  8.         {
  9.             string temp = str;
  10.             int j = 0;
  11.             int k = 0;
  12.             for (int i = 0; i < temp.Length; i++)
  13.             {
  14.                 if (Regex.IsMatch(temp.Substring(i, 1), @"[\u4e00-\u9fa5]+"))
  15.                 {
  16.                     j += 2;
  17.                 }
  18.                 else
  19.                 {
  20.                     j += 1;
  21.                 }
  22.                 if (j <= length)
  23.                 {
  24.                     k += 1;
  25.                 }
  26.                 if (j > length)
  27.                 {
  28.                     return temp.Substring(0, k) + "..";
  29.                 }
  30.             }
  31.             return temp;
  32.         }
  33. //csharp/8582

回复 "C#区分中英文按照指定长度截取字符串"

这儿你可以回复上面这条便签

captcha