在许多语言中,有一对函数chr()
和ord()
,它们在数字和字符值之间进行转换。在某些语言中,ord()
被称为asc()
。
Ruby有Integer#chr
,它工作得很好:
>> 65.chr
A
当然可以。但是你怎么走另一条路呢?
"A".each_byte do |byte|
puts byte
end
打印:
65
这和我想要的非常接近。但我确实希望避免循环--在声明const
时,我想要的是足够短以便可读的内容。
发布于 2013-12-11 01:50:39
如果String#ord在1.9中不存在,那么它在2.0中存在:
"A".ord #=> 65
发布于 2008-11-21 14:19:09
在Ruby 1.8系列及之前的版本中,以下代码都将生成65 (对于ASCII):
puts ?A
'A'[0]
在Ruby 1.9中,这一行为发生了变化,以上两种情况都将生成"A“。在Ruby 1.9中,正确的方法是:
'A'[0].ord
不幸的是,Ruby1.8中不存在ord
方法。
发布于 2008-11-21 13:44:18
尝试:
'A'.unpack('c')
https://stackoverflow.com/questions/308749
复制相似问题