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; }