读书人

为啥同样是去掉空字符,换个方法就不能

发布时间: 2012-10-18 13:46:56 作者: rapoo

为什么同样是去掉空字符,换个方法就不能输出了呢?
原方法是这样的
[code=C#]
/// 16进制转换成字符串
public static string HexStringToString(string hs)
{
//以%分割字符串,并去掉空字符
string[] chars = hs.Split(new char[] { '% ' }, StringSplitOptions.RemoveEmptyEntries);
byte[] b = new byte[chars.Length];
//逐个字符变为16进制字节数据
for (int i = 0; i < chars.Length; i++)
{
b[i] = Convert.ToByte(chars[i], 16);
}
//按照指定编码将字节数组变为字符串
return Encoding.GetEncoding( "GB2312 ").GetString(b, 0, b.Length);

}[/code]
我把它改成了这样
[code=C#] public static string HexStringToString(string hs)
{
//以%分割字符串,并去掉空字符
hs.Trim();
string[] chars = hs.Split(new char[] { '% ' });
byte[] b = new byte[chars.Length];
//逐个字符变为16进制字节数据
for (int i =1; i < chars.Length; i++)
{
b[i] = Convert.ToByte(chars[i], 16);
MessageBox.Show(chars[i]);
}
//按照指定编码将字节数组变为字符串
return Encoding.GetEncoding( "GB2312 ").GetString(b, 0, b.Length);


}[/code]

两种方法的chars数组内容是一样的,但是在最后一步,第二种方法就不能输出内容.
我之所以这样改,是因为wince下不认StringSplitOptions,我只能用其他方法去代替他.
哪位前辈知道怎样去改写啊?只要绕过StringSplitOptions,能输出正常的GB2312中文就可以.
非常感谢!

[解决办法]
hs = hs.Trim();
另外这个函数只能去掉前后的空字符
[解决办法]
既然不支持,那你就不会自己去掉空字符啊

读书人网 >C#

热点推荐