教我自己Go我正在构建一个简单的服务器,它需要一些输入,做一些处理并将输出发送回客户端(包括原始输入)。从字节中删除NUL字符
输入的长度可以从5-13个字符+ endlines以及客户端发送的任何其他guff变化。
将输入读入字节数组,然后转换为字符串进行一些处理。另一个字符串被追加到这个字符串中,整个事物被转换回一个字节数组,并被发送回客户端。
问题是输入是用一堆NUL字符填充的,我不知道如何摆脱它们。
所以我可以循环访问数组,并且当我来到一个nul字符时,请注意长度(n),创建一个新长度的字节数组,并将前n个字符复制到新的字节数组中并使用那。这是最好的方式,还是有什么让我更容易?
一些精简代码:
data := make([]byte, 16)
c.Read(data)
s := strings.Replace(string(data[:]), "an", "", -1)
s = strings.Replace(s, "\r", "", -1)
s += "some other string"
response := []byte(s)
c.Write(response)
c.close()
而且,如果我做任何事情都要明显的愚蠢这将是很好的了解。
谢谢。我想我已经尝试过了,但似乎并不适用于\ 0,我认为这是我的问题。 – 2013-03-15 13:54:48
@Knyght:是的,因为'\ 0'是非法的转义序列(检查[specs](http://golang.org/ref/spec#octal_byte_value))。一个必须使用'\ 000':http://play.golang.org/p/KP8WLyfUB- – zzzz 2013-03-15 14:05:15
@zzzz - 我有一个Dim Buffer()As Byte。因此对于此 缓冲区= bytes.Trim(缓冲区,“\ x00”) 字节在VB.net中显示错误 – picnic4u 2015-01-03 15:34:44