截取指定长度的字符串,超过指定长度的加...,长度字符串
分享于 点击 35827 次 点评:67
截取指定长度的字符串,超过指定长度的加...,长度字符串
/**//// <summary>
/// 按指定汉字的宽度截取字符串
/// </summary>
/// <param name="sourceStr">源字符串</param>
/// <param name="length">要截取汉字的个数</param>
/// <param name="isRounLastChar">当源串中存在半角和全角交替是,当结尾存在半个汉字时是否保留最后一位汉字</param>
/// <returns>截取后的字符串</returns>
/// <summary>
/// 超过指定汉字长度截取字符串并加上...
/// </summary>
/// <param name="str">要截取的字符串</param>
/// <param name="length">截取汉字长度</param>
/// <param name="isRounLastChar">当结尾存在半个汉字时是否保留</param>
/// <returns>截取后的结果</returns>
public string CutString4(string str, int length, bool isRounLastChar)
...{
int n = length * 2;
string dStr = str;
string tempStr = string.Empty;
System.Text.Encoding gbEncoding = System.Text.Encoding.GetEncoding("gb2312");
if (n < gbEncoding.GetBytes(dStr).Length)
...{
int i = 0;
while (n != 0)
...{
if (n == 1)
...{
if (isRounLastChar)
...{
tempStr += dStr[i];
}
break;
}
if (isCn(dStr[i]))
...{
tempStr += dStr[i];
n = n - 2;
}
else
...{
tempStr += dStr[i];
n--;
}
i++;
}
tempStr=tempStr+"...";
}
else
...{
tempStr=dStr;
}
tempStr=replace(tempString,"/");
return(tempStr);
}
/**//// <summary>
/// 是否为汉字
/// </summary>
/// <param name="c">字符</param>
/// <returns>true/false</returns>
public bool isCn(char c)
...{
byte[] bs = System.Text.Encoding.UTF8.GetBytes(c.ToString());
if (bs.Length == 3)
...{
return true;
}
else
...{
return false;
}
}
相关文章
- 暂无相关文章
用户点评