C#支持中文的格式化字符长度方法
支持中文的格式化字符长度,自动添加...符号
#region 格式化字符串长度 /// <summary> /// 格式化字符串长度 /// </summary> /// <param name="str">输入的字符串</param> /// <param name="n">截取的长度</param> /// <returns>被截取完的字符串</returns> public static string stringformat(string str, int n) { /// ///格式化字符串长度,超出部分显示省略号,区分汉字跟字母。汉字2个字节,字母数字一个字节 /// string temp = string.Empty; if (System.Text.Encoding.Default.GetByteCount(str) <= n)//如果长度比需要的长度n小,返回原字符串 { return str; } else { int t = 0; char[] q = str.ToCharArray(); for (int i = 0; i < q.Length && t < n; i++) { if ((int)q[i] >= 0x4E00 && (int)q[i] <= 0x9FA5)//是否汉字 { temp += q[i]; t += 2; } else { temp += q[i]; t++; } } return (temp + "..."); } } #endregion
量的积累到质的飞越