首页 > 解决方案 > 从 Julia 中的字节向量中读取以空字符结尾的字符串

问题描述

我有一个 UInt8 类型和固定长度 10 的向量。我认为它包含一个以 null 结尾的字符串,但是当我执行 String(v) 时,它显示字符串 + 向量其余部分的所有零。

v = zeros(UInt8, 10)
v[1:5] = Vector{UInt8}("hello")
String(v)

输出是“你好\0\0\0\0\0”。

要么我包装错了,要么读错了。有什么想法吗?

标签: juliac-stringsnull-terminated

解决方案


我使用这个片段:

"""
    nullstring(Vector{UInt8})
Interpret a vector as null terminated string.
"""
nullstring(x::Vector{UInt8}) = String(x[1:findfirst(==(0), x) - 1])

虽然我打赌有更快的方法来做到这一点。


推荐阅读