今天我正在经历一些大字符串突然想到,"我只想head
或tail
这些东西。"
我能够简单地使用:"some large string...".[0..9]
显示字符串的前10个字符,并且类似于tail([-10..-1]
)我想,但是有没有选项已经完成,所以我们可以简单地做:
"string".head(10)
和"string".tail(50)
?
同样,我希望看到这样的东西能够解析一般的对象结构。我是否需要构建自己的库,或者这已经在标准库中以某种方式完成了我只是忽略了?
答案 0 :(得分:1)
Rails&#39>中存在first
和last
方法。 ActiveSupport string extensions,但不幸的是核心库。您可以随时将ActiveSupport作为宝石引入。
答案 1 :(得分:0)
这可能有点笨拙,但在纯Ruby(没有ActiveSupport)中你可以这样做:
str = "this is a test"
str.chars.first(10).join
# => "this is a "
str.chars.last(10).join
# => " is a test"
答案 2 :(得分:0)
对于字符串,您可以使用Ruby的String#scan来提供头字符数:
head, tail = "A quite long string that needs to find its head and tail".
scan(/(.{12})(.+)/).flatten
上面的代码将匹配任何前12个字符和剩余的字符。因此给予:
head #=> "A quite long"
tail #=> " string that needs to find its head and tail"
对于可以用作数组的任何其他内容,您可以使用Array#slice!
a = [1,2,3,4,5,6]
tail = a.dup
head = tail.slice!(0,4)
将给出
tail #=> [5,6]
head #=> [1,2,3,4]