软件编程
位置:首页>> 软件编程>> C#编程>> C#中英文混合字符串截取函数

C#中英文混合字符串截取函数

作者:shangke  发布时间:2023-01-19 06:02:55 

标签:C#,中英文,字符串截取

代码一


/// <summary>
   /// 截断字符串
   /// </summary>
   /// <param name="maxLength">最大长度</param>
   /// <param name="str">原字符串</param>
   /// <returns></returns>
   public static string CutStr(int maxLength, string str)
   {
     string temp = str;
     if (Regex.Replace(temp, "[\u4e00-\u9fa5]", "zz", RegexOptions.IgnoreCase).Length <= maxLength)
     {
       return temp;
     }
     for (int i = temp.Length; i >= 0; i--)
     {
       temp = temp.Substring(0, i);
       if (Regex.Replace(temp, "[\u4e00-\u9fa5]", "zz", RegexOptions.IgnoreCase).Length <= maxLength - 3)
       {
         return temp + "...";
       }
     }
     return "...";
   }

代码二


private string GetByteString(string center, int maxlen, string endStr)
   {
     string temp = center.Substring(0, (center.Length < maxlen + 1) ? center.Length : maxlen + 1);
     byte[] encodedBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(temp);
     string outputStr = "";
     int count = 0;
     for (int i = 0; i < temp.Length; i++)
     {
       if ((int)encodedBytes[i] == 63)
         count += 2;
       else
         count += 1;

if (count <= maxlen - endStr.Length)
         outputStr += temp.Substring(i, 1);
       else if (count > maxlen)
         break;
     }
     if (count <= maxlen)
     {
       outputStr = temp;
       endStr = "";
     }
     outputStr += endStr;
     return outputStr;
   }
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com