功能,实现截字汉字为一个字,英文为两个为一个字。
如有不足请大家指教
/// <summary>
/// 截字处理函数
/// </summary>
/// <param name="splitStr">截字字符串</param>
/// <param name="splitletter">截字个数</param>
/// <returns></returns>
public string SplitString(string splitStr, int splitletter)
{
int maxLength = splitletter * 2;
int splitlPointer = splitletter;
int splitLenght=splitStr.Length ;
string strAfter = "";
if (splitLenght<splitletter)
return splitStr;
if (splitletter <= 0)
return string.Empty;
if (System.Text.Encoding.GetEncoding("GB2312").GetBytes(splitStr).Length > maxLength)
{ strAfter = "..."; }
char[] splitChr = splitStr.ToCharArray();
string splitTemp = string.Empty;
for (int i = 0; i < splitLenght; i++)
{
if (i == splitlPointer||i >= maxLength)
{ return splitTemp + strAfter; }
char splitItem = splitChr[i];
splitTemp+=splitItem.ToString();
if (System.Text.Encoding.GetEncoding("GB2312").GetBytes(splitItem.ToString()).Length == 1)
{ splitlPointer++; }
else if (System.Text.Encoding.GetEncoding("GB2312").GetBytes(splitItem.ToString()).Length == 2)
{
if (splitlPointer == splitletter)
{
if (i + 2 > splitlPointer)
{ return splitTemp + strAfter; }
}
else {
if (i + 2 >= splitlPointer)
{ return splitTemp + strAfter; }
}
}
}
return splitStr;
}