2015-03-19 42 views
3

我是新来的朱莉娅,我想知道做这件事的最好,方便,可读,最快的方法是什么。在Julia中将int转换为char的最佳方式是什么?

例如:5 - > '5'

我最好现在的做法是:

c = string(i)[1] 

c = char('0'+i) 
+1

您打算如何处理您的“Char”? – rickhg12hs 2015-03-19 12:00:16

+0

@ rickhg12hs:最终目标是用另一个数字替换整数的一些数字。例如35294 - > 31114 在处理整数时使用一个字符似乎没有关系,但我的意图仅次于这个问题。 – reschu 2015-03-19 14:34:02

回答

1

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

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

根据上行数据的预期清洁度,您可以添加一些检查,以确保你没有得到意想不到的事情;所有

digittochar(6002) = អ 
0

如果你想有一个朱莉娅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                                      
相关问题