[英]How to convert integer to char
我有一堆整數ns,其中ns中的所有n都為0 <= n <= 9。 我需要將它們另存為字符或字符串。 我用@time比較內存使用情況,我得到了:
julia> @time a = "a"
0.000010 seconds (84 allocations: 6.436 KiB)
"a"
julia> @time a = 'a'
0.000004 seconds (4 allocations: 160 bytes)
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
我選擇將整數轉換為字符,但是我不知道正確的方法是什么。 當我在REPL中執行Char(1)
時,我得到'\\x01': ASCII/Unicode U+0001 (category Cc: Other, control)
,如果我嘗試打印它,則會得到此符號:。
相反,當我在REPL中執行'1'
時,我得到的是'1': ASCII/Unicode U+0031 (category Nd: Number, decimal digit)
,如果我打印出來,則得到1
。 這是我想要的行為。
我考慮過要創建一個字典來為每個整數分配其對應的字符,但是我很確定這不是可行的方法...
使用Char(n + '0')
。 這將添加0
位數的ASCII偏移量,並修復其余的位數。 例如:
julia> a = 5
5
julia> Char(a+'0')
'5': ASCII/Unicode U+0035 (category Nd: Number, decimal digit)
還要注意,使用@time
計時會有些問題,尤其是對於非常小的操作。 最好使用BenchmarkTools.jl中的@btime
或@benchmark
。
您可能需要類似:
julia> bunch_of_integers = [1, 2, 3, 4, 5]
julia> String(map(x->x+'0', bunch_of_integers))
"12345"
或類似的東西:
julia> map(Char, bunch_of_integers.+'0')
5-element Array{Char,1}:
'1'
'2'
'3'
'4'
'5'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.