我有一个字节数组,在它的末尾可能有也可能没有空字节。将它转换为字符串后,我最后有一堆空白。我尝试使用Trim()来摆脱它,但它不起作用。如何在转换字节数组后删除字符串末尾的所有空格?
我写这是C#。
答案 0 :(得分:6)
Trim()在您的情况下不起作用,因为它只删除空格,制表符和换行符AFAIK。它不会删除'\ 0'字符。你也可以使用这样的东西:
byte [] bts = ...;
string result = Encoding.ASCII.GetString(bts).TrimEnd('\ 0');
答案 1 :(得分:2)
public string TrimNulls(byte[] data)
{
int rOffset = data.Length - 1;
for(int i = data.Length - 1; i >= 0; i--)
{
rOffset = i;
if(data[i] != (byte)0) break;
}
return System.Text.Encoding.ASCII.GetString(data, 0, rOffset + 1);
}
为了完全披露,我想非常清楚, 只能对ASCII可靠地工作。对于任何多字节编码,这将废弃床。