2015-03-19 58 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                                      
相關問題