通过x个字符获取Ruby中的子string
我正在尝试生成一些Ruby代码,它将接收一个string并返回一个新的string,并从其末尾删除数字x个字符 – 这些字符可以是实际的字母,数字,空格等。
例如:给出以下string
a_string = "a1wer4zx"
我需要一个简单的方法来获得相同的string,减 – 说 – 最后3个字符。 在上面的情况下,这将是“a1wer”。 我现在这样做的方式似乎很复杂:
an_array = a_string.split(//,(a_string.length-2)) an_array.pop new_string = an_array.join
有任何想法吗?
这个怎么样?
s[0, s.length - 3]
或这个
s[0..-4]
编辑
s = "abcdefghi" puts s[0, s.length - 3] # => abcdef puts s[0..-4] # => abcdef
使用这样的东西:
s = "abcdef" new_s = s[0..-2] # new_s = "abcde"
请看这里的slice
方法: http : //ruby-doc.org/core/classes/String.html
另一个select是获取string的string列表, take
x个字符join
并返回string:
[13] pry(main)> 'abcdef'.chars.take(2).join => "ab" [14] pry(main)> 'abcdef'.chars.take(20).join => "abcdef"
如果你需要在rails中使用,你可以先使用( 源代码 )
s = '1234567890' x = 4 s.first(s.length - x) # => "123456"
还有最后 ( 源代码 )
s.last(2) # => "90"
或从/到