小编典典

Ruby,从字符串中删除最后 N 个字符?

all

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


阅读 111

收藏
2022-04-29

共1个答案

小编典典

红宝石 2.5+

从 Ruby 2.5 开始,您可以使用delete_suffixdelete_suffix!以一种快速且易读的方式实现此目的。

有关方法的文档在这里

如果您知道后缀是什么,这是惯用的(我认为,比这里的其他答案更具可读性):

'abc123'.delete_suffix('123')     # => "abc"
'abc123'.delete_suffix!('123')    # => "abc"

它甚至比最佳答案快得多(使用 bang 方法几乎快 40% )。 这是相同基准测试的结果:

                     user     system      total        real
chomp            0.949823   0.001025   0.950848 (  0.951941)
range            1.874237   0.001472   1.875709 (  1.876820)
delete_suffix    0.721699   0.000945   0.722644 (  0.723410)
delete_suffix!   0.650042   0.000714   0.650756 (  0.651332)

我希望这很有用 - 请注意该方法目前不接受正则表达式,因此如果您不知道后缀,它暂时不可行。但是,正如接受的答案( 更新:在撰写本文时
)所指示的那样,我认为这可能对某些人有用。

2022-04-29