2
string = "Yellow"
puts string[1..string.length] -> outputs "ellow"

有没有更短的方法让 Ruby 在不使用 string.length 的情况下做同样的事情?例如,在 Python 中,我们可以编写 string[1:] 并且它会执行此操作。

提前致谢。

4

2 回答 2

8

在 Ruby 中使用[]获取字符串或数组的索引时,使用负数将从索引的末尾开始计数,以1([-0]将与[0]) 相同。

在你的例子中,

puts string[1..-1] 

将输出所需的字符串"ellow"。相等,

puts string[1..-2] 

会产生"ello"等等。

字符串#[] 的文档

于 2012-04-05T13:50:13.947 回答
2

您应该在间隔中使用 -1 作为右边界:

string = "Yellow"
puts string[1..-1] -> outputs "ellow"
于 2012-04-05T13:47:36.500 回答