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


当前回答

查看slice()方法:

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

其他回答

str = str[0..-1-n]

不像[0…-n],它处理n=0的情况。

name = "my text"
x.times do name.chop! end

在控制台:

>name = "Nabucodonosor"
 => "Nabucodonosor" 
> 7.times do name.chop! end
 => 7 
> name
 => "Nabuco" 

使用正则表达式:

str = 'string'
n = 2  #to remove last n characters

str[/\A.{#{str.size-n}}/] #=> "stri"

如果您正在使用rails,请尝试:

"my_string".last(2) # => "ng"

(编辑)

获取没有最后2个字符的字符串:

n = "my_string".size
"my_string"[0..n-3] # => "my_stri"

注意:最后一个字符串字符是n-1。为了去掉最后2,我们用n-3。

查看slice()方法:

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