从给定字符串结尾获取指定字节长度的字符串
2013-11-16 15:00
288 查看
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”,4,应该截为“ABC”,而不是半个我+ABC;输入“我汉DEF”,5,应该输出为“汉DEF”。
下面代码为从末尾取,总觉得有点繁琐,有更好的方法么?
///<summary>
///从给定的字符串后面截取指定字节长度的字符串
///</summary>
///<paramname="source">源字符串</param>
///<paramname="length">字节长度</param>
///<returns>返回的字符串</returns>
publicstaticstringGetSubString(stringsource,intlength)
{
stringreturnstring=string.Empty;
intsourceByteLen=Encoding.Default.GetBytes(source).Length;//给定字符串的字节长度
if(sourceByteLen>=length)
{
intneedLen=length;//截取的字符长度
for(inti=length/2;i<=length;i++)//从后面的字符逐渐往前加直到长度够了
{
intlen=Encoding.Default.GetBytes(source.ToCharArray(),source.Length-i,i).Length;
if(len==length)
{
break;
}
elseif(len>length)
{
needLen=length-1;
break;
}
}
byte[]name=newbyte[needLen];
byte[]byteName=Encoding.Default.GetBytes(source);
for(inti=sourceByteLen-needLen,j=0;i<sourceByteLen;i++,j++)
{
name[j]=byteName[i];
}
returnstring=Encoding.Default.GetString(name);
}
else
{
thrownewException("lengthisbiggerthansourcestringbytelength");
}
returnreturnstring;
}
相关文章推荐
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- 获取字符串中指定位置开始的指定长度的字符串,支持汉字英文混合 汉字为2字节计数
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#与JS实现 获取指定字节长度 中英文混合字符串 的方法
- 获取指定字节长度的字符串
- C#获取中文英文混合字符串Byte字节长度
- 获取字符串的长度 (汉字占两个字节)
- 获取字符串的长度 (汉字占两个字节)
- C# 获取字符串字节长度
- php中获取字符串长度 中文算两个字节
- 获取文件字节数,获取文件换行符,追加字符串到文件指定行
- 科大讯飞面试题 JS获取字符串字节长度
- js获取字符串的字节长度
- java获取一个字符串字节长度