当前位置: 首页 > 面试题库 >

如何将零结尾的字节数组转换为字符串?

昝涛
2023-03-14
问题内容

我需要阅读[100]byte以传输一堆string数据。

由于并非所有strings的长度都恰好是100个字符,因此剩余的部分将byte array0s 填充。

如果我将by 转换[100]bytestringstring(byteArray[:]),则尾部0s将显示为^@^@s。

在C中,stringwill终止于0,所以我想知道将其转换byte arraystringGolang 的最佳方法是什么。


问题答案:

将数据读取到字节片中的方法返回读取的字节数。您应该保存该数字,然后使用它创建字符串。如果n是读取的字节数,则代码将如下所示:

s := string(byteArray[:n])

要转换完整的字符串,可以使用:

s := string(byteArray[:len(byteArray)])

这等效于:

s := string(byteArray)

如果由于某种原因您不知道n,则可以使用bytes包来查找它,假设您的输入中没有嵌入空字符。

n := bytes.Index(byteArray, []byte{0})

或如icza所指出的,您可以使用以下代码:

n := bytes.IndexByte(byteArray, 0)


 类似资料:
  • 问题内容: 这个: 这样做(是空字节): 问题答案: Go的syscall程序包中隐藏了该函数,该函数查找第一个空字节([] byte {0})并返回长度。我假设它被称为C-Length。 抱歉,我迟到了一年,但是我认为它比其他两个 要 简单得多(没有不必要的输入等)。 所以, ^的意思是设置为从头到索引处的字节片。 结果将为3。

  • 我得到一个错误读数:

  • 问题内容: 我有一个一维String数组,我想将其转换为一维字节数组。我该怎么做呢?这需要ByteBuffer吗?我怎样才能做到这一点?(字符串可以是任意长度,只想知道如何执行这样的操作。将其转换为字节数组后,如何将其转换回String数组? -担 问题答案: 数组到数组 ,应该 手动 将其转换为两边,但是如果只有一个String,则可以和; 像这样 对于string []中的一个字节[],您必须

  • 问题内容: 如何将Java字符串转换为ASCII字节数组? 问题答案: 使用该方法,为其指定适当的名称(或名称)。 例: (Java 7的前:)

  • 我创建了一个包含两个字符串的字节数组。如何将字节数组转换为字符串? 我想将转换为字符串。我可以使用来完成,但我不能使用(不支持)。

  • 问题内容: 我有一个要加密的字节数组,然后转换为字符串,以便可以传输。当我收到字符串时,我必须将字符串转换回字节数组,以便可以对其进行解密。我检查了接收到的字符串是否与发送的字符串(包括长度)匹配,但是当我使用诸如str.getBytes()之类的东西将其转换为字节数组时,它与我的原始字节数组不匹配。 示例输出: 任何想法如何将接收到的字符串转换为与发送的字节数组匹配的字节数组? 谢谢 问题答案: