gpt4 book ai didi

go - 从字节中删除 NUL 字符

转载 作者:IT老高 更新时间:2023-10-28 13:02:56 28 4
gpt4 key购买 nike

为了自学 Go,我正在构建一个简单的服务器,它接受一些输入、进行一些处理并将输出发送回客户端(包括原始输入)。

输入的长度可以从大约 5 到 13 个字符 + 结束行以及客户端发送的任何其他内容不等。

输入被读入字节数组,然后转换为字符串进行一些处理。另一个字符串被附加到这个字符串,整个东西被转换回一个字节数组以发送回客户端。

问题是输入填充了一堆 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()

另外,如果我在这里做任何其他明显愚蠢的事情,我会很高兴知道。

最佳答案

在包“字节”中,func Trim(s []byte, cutset string) []byte是你的 friend :

Trim returns a subslice of s by slicing off all leading and trailing UTF-8-encoded Unicode code points contained in cutset.

// Remove any NULL characters from 'b'
b = bytes.Trim(b, "\x00")

关于go - 从字节中删除 NUL 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431283/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com