从字符串中删除最后n个字符的首选方法是什么?


当前回答

查看slice()方法:

http://ruby-doc.org/core-2.5.0/String.html#method-i-slice

其他回答

删除最后n个字符与保留第一个长度- n个字符相同。

主动支持包括String#first和String#last方法,它们提供了一种方便的方法来保留或删除第一个/最后一个n个字符:

require 'active_support/core_ext/string/access'

"foobarbaz".first(3)  # => "foo"
"foobarbaz".first(-3) # => "foobar"
"foobarbaz".last(3)   # => "baz"
"foobarbaz".last(-3)  # => "barbaz"

如果你可以创建类方法,想要删除字符,试试这个:

class String
  def chop_multiple(amount)
    amount.times.inject([self, '']){ |(s, r)| [s.chop, r.prepend(s[-1])] }
  end
end

hello, world = "hello world".chop_multiple 5
hello #=> 'hello '
world #=> 'world'
irb> 'now is the time'[0...-4]
=> "now is the "
x = "my_test"
last_char = x.split('').last

查看slice()方法:

http://ruby-doc.org/core-2.5.0/String.html#method-i-slice