在Python中,如果我想获得字符串的前n个字符减去最后一个字符,我会这样做:
output = 'stackoverflow'
print output[:-1]
什么是Ruby等价物?
答案 0 :(得分:11)
我不想过于挑剔,但如果你想更像Python的方法,而不是"StackOverflow"[0..-2]
,你可以"StackOverflow"[0...-1]
做同样的结果。
在Ruby中,具有3个点的范围排除了右边的参数,其中具有两个点的范围包括它。因此,在字符串切片的情况下,三个点更接近Python的语法。
答案 1 :(得分:4)
您当前的Ruby不会按照您的描述执行操作:它会切断最后一个字符,但它也会反转字符串。
与Python代码段最接近的等价物是
output = 'stackoverflow'
puts output[0...-1]
您最初使用的是..
而不是...
(如果您执行output[0..-2]
会有效);前者被封闭,后者被封闭。切片 - 以及Python中的大部分内容 - 都是封闭式的。
答案 2 :(得分:2)
"stackoverflow"[0..-2]
将返回"stackoverflo"
答案 3 :(得分:1)
如果你想要的只是删除字符串的最后一个字符,你也可以使用'chop'方法:
puts output.chop
或
puts output.chop!
答案 4 :(得分:1)
如果您只想删除最后一个字符,也可以
output.chop