当前位置:主页 > 软件编程 > .NET代码 >

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

时间:2020-10-14 10:05:32 | 栏目:.NET代码 | 点击:

代码一

/// <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;
    }

以上就是C# 截取字符串方法(包含中英混合)的实现代码,需要的朋友可以参考一下

您可能感兴趣的文章:

相关文章