题
在红宝石,试图打印出来的个别要素的一串是给我的麻烦。而不是看到每个角色的,我看到他们的ASCII值来代替:
>> a = "0123"
=> "0123"
>> a[0]
=> 48
我在网上看了但找不到任何方式获得原始"0"回了它。我有点新的红宝石到我知道它已经是一些简单的但我似乎找不到它。
解决方案
或者你可以把整其角色值:
a[0].chr
其他提示
你想要一个在[0,1],而不是一个[0].
我认为这是改变中的红宝石1.9如"航空自卫队"[2]的收益率"d"而不是文字代码
以总结:
这种行为将要离开在1.9版,其中的字本身返回,但在以前的版本,试图以参照一个单一的字符串通过其符位置将返回其角色值(所以"ABC"[2]返回67)
还有一些方法,返回一个字符的范围从一串(见的红宝石文件的字符串 切片的方法)以下所有返回"C":
"ABC"[2,1]
"ABC"[2..2]
"ABC".slice(2,1)
我找到的范围内选择是最简单的阅读。任何人都可以说是否是低效率?
该[,]操作者返回串回到你,这是一个串的操作者,在那里作为[]操作者返回的性质ruby视为一个数字的时候打印出来。
我认为 each_char
或 chars
介绍更好的你想要什么。
irb(main):001:0> a = "0123"
=> "0123"
irb(main):002:0> Array(a.each_char)
=> ["0", "1", "2", "3"]
irb(main):003:0> puts Array(a.each_char)
0
1
2
3
=> nil
不隶属于 StackOverflow