StringEx.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 
  2. namespace JLHHJSvr.Helper
  3. {
  4. public static class StringEx
  5. {
  6. /// <summary>
  7. /// 按中文代表两字符的方式发截断字符串(返回字符串的长度小于等于len)
  8. /// </summary>
  9. /// <param name="str">原字符串</param>
  10. /// <param name="len">长度</param>
  11. /// <returns></returns>
  12. public static string SubStringEx(this string str, int len)
  13. {
  14. if (string.IsNullOrEmpty(str) || len <= 0)
  15. {
  16. return string.Empty;
  17. }
  18. int l = str.Length;
  19. #region 计算长度
  20. int clen = 0;
  21. while (clen < len && clen < l)
  22. {
  23. //每遇到一个中文,则将目标长度减一。
  24. if ((int)str[clen] > 128) { len--; }
  25. clen++;
  26. }
  27. #endregion
  28. if (len < 0)
  29. {
  30. len = 0;
  31. }
  32. if (len > str.Length)
  33. {
  34. len = str.Length;
  35. }
  36. return str.Substring(0, len);
  37. }
  38. }
  39. }