因为中文和英文所占位置不同,一个能显示5个中文的位置应该能显示10个英文,
这个字符串操作函数很好用,是CSDN里写的。
/// 内容摘要:按字节截断字符串。
/// </summary>
public static string GetSubString(string mText,int startIndex,int byteCount)
{
if(byteCount < 1 ) return string.Empty;
if( System.Text.Encoding.Default.GetByteCount(mText)<= byteCount)
{
return mText;
}
else
{
if(startIndex == 0)
{
byte[] txtBytes = System.Text.Encoding.Default.GetBytes(mText);
byte[] newBytes = new byte[byteCount];
for(int i=0;i<byteCount;i++)
newBytes[i] = txtBytes[i];
return System.Text.Encoding.Default.GetString(newBytes);
}
else
{
string tmp = GetSubString(mText,0,startIndex-1);
mText = mText.Substring(tmp.Length);
return GetSubString(mText,0,byteCount);
}
}
}
public static string GetSubString(string mText,int startIndex)
{
return GetSubString(mText,startIndex,System.Text.Encoding.Default.GetByteCount(mText)-startIndex+1);
}