自己也写串截取函数,精确到字符
public string substr(string str, int len, string type)
{
//str 源串内容
//len 长度,这里要注意,len参数指代的是全角字符的个数
//type 参数用来表示,返回串带不带省略号....
int bytecount = Encoding.Default.GetByteCount(str);
len = len * 2;
int sum = 0;
if (bytecount > len)
{
for (int i = 0; i < len; i++)
{
if (sum < len)
{
sum += Encoding.Default.GetByteCount(str[i].ToString());
}
else
{
if (sum % 2 == 0)
{
sum = i;
}
else
{
sum = i - 1;
}
break;
}
}
str = str.Substring(0, sum);
switch (type)
{
case "1":
str += "...";
break;
default:
break;
}
}
return str;
}