首页 > 代码库 > C# 截取string字符串长度3种方法
C# 截取string字符串长度3种方法
/// <summary> /// 截取指定长度的字符串 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="len">要截取的长度</param> /// <param name="flag">截取后是否加省略号(true加,false不加)</param> /// <returns></returns> public static string CutString(string str, int len, bool flag) { string _outString = ""; int _len = 0; for (int i = 0; i < str.Length; i++) { if (Char.ConvertToUtf32(str, i) >= Convert.ToInt32("4e00", 16) && Char.ConvertToUtf32(str, i) <= Convert.ToInt32("9fff", 16)) { _len += 2; if (_len > len)//截取的长度若是最后一个占两个字节,则不截取 { break; } } else { _len++; } try { _outString += str.Substring(i, 1); } catch { break; } if (_len >= len) { break; } } if (str != _outString && flag == true)//判断是否添加省略号 { _outString += "..."; } return _outString; }
/// <summary> /// 截取指定长度的字符串 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="len">要截取的长度</param> /// <param name="flag">截取后是否加省略号(true加,false不加)</param> /// <returns></returns> public static string CutString(string str, int len, bool flag) { System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding(); byte[] bts = ascii.GetBytes(str); int _len = 0; string _outString = ""; for (int i = 0; i < bts.Length; i++) { if ((int)bts[i] == 63)//两个字符 { len += 2; if (_len > len)//截取的长度若是最后一个占两个字节,则不截取 { break; } } else { len += 1; } try { _outString += str.Substring(i, 1); } catch { break; } if (_len >= len) { break; } } if (str != _outString && flag == true)//判断是否添加省略号 { _outString += "..."; } return _outString; }
/// <summary> /// 截取指定长度的字符串 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="len">要截取的长度</param> /// <param name="flag">截取后是否加省略号(true加,false不加)</param> /// <returns></returns> public static string CutString(string str, int len, bool flag) { if (str == null || str.Length == 0 || len <= 0) { return string.Empty; } int l = str.Length; #region 计算长度 int clen = 0; while (clen < len && clen < l) { //每遇到一个中文,则将目标长度减一。 if ((int)str[clen] > 128) { len--; } clen++; } #endregion if (clen < l) { return flag ? str.Substring(0, clen) + "..." : str.Substring(0, clen); } else { return str; } }
C# 截取string字符串长度3种方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。