簡體   English   中英

如何將整數轉換為char

[英]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)
  1. 為什么會有如此巨大的差異?

我選擇將整數轉換為字符,但是我不知道正確的方法是什么。 當我在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 這是我想要的行為。

  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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM