加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:16:03 所属栏目:百科 来源:网络整理
导读:代码一 /// 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(tem

代码一

/// <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,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# 截取字符串方法(包含中英混合)的实现代码,需要的朋友可以参考一下

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读