读取设备上的Byte转成文字后,怎么比较都没法相等,打印出来一样样的,但就是不相等,而且在循环中比较一次就会跳循环,也没有报错。整的头都大了。
原因
从设备读取的Byte转文字前没有删除Byte末尾的空字节,导致转文字后在文字后边有不可见字符,无法正确对比。
方法
在Byte转文字前把Byte后面的空字节删除,下面附上网上找的一段代码。
//传入要处理的字节组,返加处理后的字节组
public static byte[] ByteCut(byte[] b) {
byte cut = 0x00;
var list = new List<byte>();
list.AddRange(b);
for (var i = list.Count - 1; i >= 0; i--) {
if (list[i] == cut)
list.RemoveAt(i);
else
break;
}
var lastbyte = new byte[list.Count];
for (var i = 0; i < list.Count; i++) {
lastbyte[i] = list[i];
}
return lastbyte;
}
转载请注明:HANLEI'BLOG » C#Byte转String无法比较的问题