在 Julia 中将 int 转换为 char 的最佳方法是什么?
What's the best way to convert an int to a char in Julia?
我是 Julia 的新手,我想知道最好、方便、可读、最快的方法是什么。
示例:5 -> '5'
我目前最好的方法是:
c = string(i)[1]
或
c = char('0'+i)
您提出的第二个答案易于理解、正确(对于拉丁数字!)且快速。
digittochar(d) = Char('0' + d)
根据上游数据的预期清洁度,您可以添加一些检查以确保不会出现意外情况;毕竟
digittochar(6002) = អ
如果您想要一个 Julia function
来替换整数中的数字,这里有一种方法可以做到。确实没有错误检查,所以这对坚果输入来说很脆弱。
julia> function replace_int_digs{T <: Union(BigInt, Unsigned, Signed)}(x::T, locs::Vector{Int}, digs::Vector{Int})
x_str_array = split(string(x), "")
for (k, loc) in enumerate(locs)
x_str_array[loc] = string(digs[k])
end
return parseint(T, join(x_str_array))
end
replace_int_digs (generic function with 1 method)
julia> replace_int_digs(12345,[3],[9])
12945
julia> replace_int_digs(big(12345),[3],[9])
12945
julia> replace_int_digs(big(12345),[3,1],[9,7])
72945
julia> replace_int_digs(int32(12345),[3,1],[9,7])
72945
我是 Julia 的新手,我想知道最好、方便、可读、最快的方法是什么。
示例:5 -> '5'
我目前最好的方法是:
c = string(i)[1]
或
c = char('0'+i)
您提出的第二个答案易于理解、正确(对于拉丁数字!)且快速。
digittochar(d) = Char('0' + d)
根据上游数据的预期清洁度,您可以添加一些检查以确保不会出现意外情况;毕竟
digittochar(6002) = អ
如果您想要一个 Julia function
来替换整数中的数字,这里有一种方法可以做到。确实没有错误检查,所以这对坚果输入来说很脆弱。
julia> function replace_int_digs{T <: Union(BigInt, Unsigned, Signed)}(x::T, locs::Vector{Int}, digs::Vector{Int})
x_str_array = split(string(x), "")
for (k, loc) in enumerate(locs)
x_str_array[loc] = string(digs[k])
end
return parseint(T, join(x_str_array))
end
replace_int_digs (generic function with 1 method)
julia> replace_int_digs(12345,[3],[9])
12945
julia> replace_int_digs(big(12345),[3],[9])
12945
julia> replace_int_digs(big(12345),[3,1],[9,7])
72945
julia> replace_int_digs(int32(12345),[3,1],[9,7])
72945