我有一个字节数组,它的末尾可能有也可能没有空字节。在将其转换为字符串后,我在末尾有一堆空格。我尝试使用Trim()来摆脱它,但它不起作用。如何在转换字节数组后删除字符串末尾的所有空格?
我正在写这是C#。
发布于 2010-03-16 03:01:41
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码可靠地起作用。对于任何多字节编码,这都会弄得乱七八糟。
发布于 2010-03-16 03:32:48
Trim()在您的情况下不起作用,因为它只删除空格、制表符和换行符AFAIK。它不会删除'\0‘字符。你也可以使用类似这样的东西:
byte[] bts = ...;
string result = Encoding.ASCII.GetString(bts).TrimEnd('\0');
https://stackoverflow.com/questions/2449675
复制相似问题