C#实现根据字节数截取字符串并加上省略号的方法
本文实例讲述了C#按字节数截取字符串并在后面加上省略号...的方法,这是一个自定义的C#函数,函数的使用说明如下:
<paramname="origStr">原始字符串</param> <paramname="endIndex">提取前endIdex个字节</param> <returns></returns>
函数代码如下:
publicstaticstringGetSubString(stringorigStr,intendIndex)
{
if(origStr==null||origStr.Length==0||endIndex<0)
return"";
intbytesCount=System.Text.Encoding.GetEncoding("gb2312").GetByteCount(origStr);
if(bytesCount>endIndex)
{
intreadyLength=0;
intbyteLength;
for(inti=0;i<origStr.Length;i++)
{
byteLength=System.Text.Encoding.GetEncoding("gb2312").GetByteCount(newchar[]{origStr[i]});
readyLength+=byteLength;
if(readyLength==endIndex)
{
origStr=origStr.Substring(0,i+1)+"...";
break;
}
elseif(readyLength>endIndex)
{
origStr=origStr.Substring(0,i)+"...";
break;
}
}
}
returnorigStr;
}
以下所示示例也是根据字节数截取字符串的,只是这个函数后面不加省略号……
///按字节数截取字符串(不带省略号)
///</summary>
///<paramname="origStr">原始字符串</param>
///<paramname="endIndex">提取前endIdex个字节</param>
///<returns></returns>
publicstaticstringGetSub1String(stringorigStr,intendIndex)
{
if(origStr==null||origStr.Length==0||endIndex<0)
return"";
intbytesCount=System.Text.Encoding.GetEncoding("gb2312").GetByteCount(origStr);
if(bytesCount>endIndex)
{
intreadyLength=0;
intbyteLength;
for(inti=0;i<origStr.Length;i++)
{
byteLength=System.Text.Encoding.GetEncoding("gb2312").GetByteCount(newchar[]{origStr[i]});
readyLength+=byteLength;
if(readyLength==endIndex)
{
origStr=origStr.Substring(0,i+1);
break;
}
elseif(readyLength>endIndex)
{
origStr=origStr.Substring(0,i);
break;
}
}
}
returnorigStr;
}热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短