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# 截取字符串方法(包含中英混合)的实现代码,需要的朋友可以参考一下 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |