Ruby-将整数转换为字符串

时间:2020-03-05 18:43:39  来源:igfitidea点击:

在Ruby中,尝试打印出String的各个元素给我带来了麻烦。我没有看到每个字符,而是看到了它们的ASCII值:

>> a = "0123"
=> "0123"
>> a[0]
=> 48

我在网上看过,但找不到任何方法将原来的" 0"从中取出。我对Ruby有点陌生,我知道它一定很简单,但似乎找不到。

解决方案

回答

我们需要a [0,1]而不是a [0]。

回答

我相信这在Ruby 1.9中正在发生变化,这样" asdf" [2]会产生" d"而不是字符代码

回答

@克里斯,

这就是为String类定义[]和[,]的方式。

查看String API。

回答

或者,我们可以将整数转换为其字符值:

a[0].chr

回答

[,]运算符返回一个字符串给我们,它是一个子字符串运算符,其中[]运算符返回将ruby在打印输出时视为数字的字符。

回答

总结一下:

此行为将在1.9版中消失,在此版本中返回字符本身,但是在以前的版本中,尝试通过其字符位置引用字符串的单个字符将返回其字符值(因此," ABC" [2]返回67)

有很多方法可以从字符串返回一定范围的字符(请参见Ruby文档中的String slice方法),所有以下这些返回" C":

"ABC"[2,1] 
"ABC"[2..2]
"ABC".slice(2,1)

我发现范围选择器是最容易阅读的。谁能说出它是否效率较低?