.Net自带的String.PadRight 方法按照MSDN的说明是:
左对齐此字符串中的字符,在右边用空格或指定的 Unicode 字符填充以达到指定的总长度。
实际使用中却发现问题:对于我们中文用户来说,双字节的汉字和单字节的字符同时处理是不可避免的,这时候此方法是不能实现其所谓的对齐效果的;
为此有了以下这个函数,经过这个函数的处理,不管字符串里面是否是中英混排的,都能正确地得到同样占位长度的字符串。
private string StrSubString(string strInput, int intCount)
{
if (strInput.Length >= intCount)
{
return strInput.Substring(0,intCount);
}
else
{
return strInput;
}
}
private string StrPadRight(string strInput,int intCount,char chRecipe)
{
Encoding coding = Encoding.GetEncoding("gb2312");
int dcount = 0;
char[] chInput = strInput.ToCharArray();
foreach (char ch in chInput)
{
if (coding.GetByteCount(ch.ToString()) == 2)
dcount++;
}
return strInput.PadRight(intCount - dcount, chRecipe);
}
扩展字符串左右对齐方法
最新推荐文章于 2021-01-23 21:23:12 发布