在Julia中将int转换为char的最佳方法是什么?

时间:2015-03-19 11:42:35

标签: julia

我是朱莉娅的新手,我想知道最好,最方便,最易读,最快捷的方式是什么。

示例:5 - > '5'

我现在最好的方法是:

c = string(i)[1]

c = char('0'+i)

2 个答案:

答案 0 :(得分:1)

您提出的第二个答案很容易理解,正确(对于拉丁数字!),并且快速。

digittochar(d) = Char('0' + d)

根据上游数据的预期清洁度,您可以添加一些检查以确保不会出现意外情况;毕竟

digittochar(6002) = អ

答案 1 :(得分:0)

如果你想要一个将取代整数中的数字的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