我在 Julia 1.4.2 中有以下代码
temp = zeros(Int64, length(input_string))
i = 1
while i< length(input_string)
temp[i] = input_string[i]
i += 1
end
Run Code Online (Sandbox Code Playgroud)
使用input_string = "200"我希望这会返回temp = [2 0 0],但由于某种原因,我返回一个带有值的 3 元素 Array{Int64,1}[50, 48, 0].
有没有办法让我理解这一点?
这有几件事:
input_string[i]) 会给你一个 type 的字符Char。temp[i] = ...)的内容时,Julia 将右侧转换为与数组相同的元素类型temp。Char(右侧)转换为 an Int(它是 的元素类型temp)给出与字符对应的 ASCII 值。该字符串"200"包含的字符'2','0'并且'0',其ASCII值50,48并且48因此我们认为,temp是[50, 48, 48] 但环有,因为它应该检查的错误i <= length(input_string),所以最后一个元素beeing0有从初始化。
这是我为此编写的代码:
function str_to_ints(str)
r = Int[]
for c in str
ci = parse(Int, c)
push!(r, ci)
end
return r
end
Run Code Online (Sandbox Code Playgroud)
例子:
julia> str_to_ints("200")
3-element Array{Int64,1}:
2
0
0
Run Code Online (Sandbox Code Playgroud)