She*_* Yu 38 ruby string substring idiomatic slice
只是想知道是否有一个Ruby习惯用法从索引中提取子字符串直到字符串结尾.我知道str[index..-1]
它在一个范围内的对象传递给工作String
的[]
方法,但它是一个有点笨拙.例如,在python中,您可以编写str[index:]
哪些内容可以隐式地获取字符串的其余部分.
例:
s = "hello world"
s[6..-1] # <-- "world"
Run Code Online (Sandbox Code Playgroud)
还有什么比这更好的s[6..-1]
吗?
如果你愿意,这里的'更好'.您可以扩展ruby String类,然后将此方法用于您的代码.例如:
class String
def last num
self[-num..-1]
end
end
Run Code Online (Sandbox Code Playgroud)
然后:
s = "hello world"
p s.last(6)
Run Code Online (Sandbox Code Playgroud)
Ruby 2.6 引入了无穷范围,这基本上消除了必须指定结束索引的需要。在你的情况下,你可以这样做:
s = "hello world"
s[6..]
Run Code Online (Sandbox Code Playgroud)
要从某个范围获取字符串:
s = 'hello world'
s[5..s.length - 1] # world
Run Code Online (Sandbox Code Playgroud)
但是,如果您只想得出最后的结论:
'hello world'.split(' ').last # world
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26778 次 |
最近记录: |