您的位置:首页 > 其它

按指定长度截取字符串(以字节计算长度)

2008-08-21 11:15 363 查看
using System.Text.RegularExpressions;

/// <summary>

/// 按指定长度截取字符串(以字节计算长度)

/// </summary>

/// <param name="stringToSub"></param>

/// <param name="length"></param>

/// <returns></returns>

public static string GetFirstString(string stringToSub, int length)

{

if (System.Text.Encoding.Default.GetByteCount(stringToSub) <= length)

return stringToSub;

Regex regex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);

char[] stringChar = stringToSub.ToCharArray();

StringBuilder sb = new StringBuilder();

int nLength = 0;

bool isCut = false;

for (int i = 0; i < stringChar.Length; i++)

{

if (regex.IsMatch((stringChar[i]).ToString()))

{

sb.Append(stringChar[i]);

nLength += 2;

}

else

{

sb.Append(stringChar[i]);

nLength = nLength + 1;

}

if (nLength > length)

{

isCut = true;

break;

}

}

if (isCut)

return sb.ToString() + ""; //可加上省略号

else

return sb.ToString();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: