如何删除句子中的最后一个单词(字符串)

苏里亚

如何删除最后一个元素?例如,我有这样的字符串:

str1 = "My testing String"
str2 = "My another testing string"

我需要一种整洁的方式来显示输出:

str1 = "My testing"
str2 = "My another testing"

这是我可以做的:

str1 = str1.split(" ")
str1.delete(str1.last)
str1.join(" ")
# => "My testing"

我想知道是否有任何整齐的方法可以做到这一点,例如:str.split(" ", 2).last => "testing string"应该显示出来"my testing"

编辑

谢谢你们提供多个有趣的答案。感谢您的努力和时间。但是,我必须公平起见,所以我决定对每个人的答案进行基准测试。这是带有基准的报告:

#!/usr/bin/ruby
require 'benchmark'
str2 = "My another testing string"
n = 500
Benchmark.bm(20) do |x|
  x.report("str2[/(.*)\s/,1]                  "){ n.times { str2[/(.*)\s/,1] } }
  x.report("str2[0...str2.rindex(' ')]        "){ n.times { str2[0...str2.rindex(' ')] } }
  x.report("str2.split(' ')[0...-1].join(' ') "){ n.times { str2.split(' ')[0...-1].join(' ') } }
  x.report("str2[/.*(?=\s)/]                  "){ n.times { str2[/.*(?=\s)/] } }
end


                                     user     system      total        real
str2[/(.*) /,1]                    0.000000   0.000000   0.000000 (  0.001394)
str2[0...str2.rindex(' ')]         0.000000   0.000000   0.000000 (  0.000956)
str2.split(' ')[0...-1].join(' ')  0.010000   0.000000   0.010000 (  0.002569)
str2[/.*(?= )/]                    0.000000   0.000000   0.000000 (  0.001351)

这清楚地表明答案p str2[0...str2.rindex(' ')]表现良好。尽管我也喜欢其他方法,但非常周到且有趣。谢谢。

第二版

根据@theTineMan评论,这里是更新的基准:

require 'benchmark'
str2 = "My another testing string"
n = 999999
Benchmark.bmbm(20) do |x|
  x.report("str2[/(.*)\s/,1]                  "){ n.times { str2[/(.*)\s/,1] } }
  x.report("str2[0...str2.rindex(' ')]        "){ n.times { str2[0...str2.rindex(' ')] } }
  x.report("str2.split(' ')[0...-1].join(' ') "){ n.times { str2.split(' ')[0...-1].join(' ') } }
  x.report("str2[/.*(?=\s)/]                  "){ n.times { str2[/.*(?=\s)/] } }
end

Rehearsal ----------------------------------------------------------------------
str2[/(.*) /,1]                      1.030000   0.000000   1.030000 (  1.033787)
str2[0...str2.rindex(' ')]           0.850000   0.000000   0.850000 (  0.853124)
str2.split(' ')[0...-1].join(' ')    4.740000   0.000000   4.740000 (  4.750215)
str2[/.*(?= )/]                      0.990000   0.000000   0.990000 (  0.990726)
------------------------------------------------------------- total: 7.610000sec

                                         user     system      total        real
str2[/(.*) /,1]                      1.020000   0.000000   1.020000 (  1.014772)
str2[0...str2.rindex(' ')]           0.830000   0.000000   0.830000 (  0.839385)
str2.split(' ')[0...-1].join(' ')    4.620000   0.010000   4.630000 (  4.629874)
str2[/.*(?= )/]                      0.990000   0.000000   0.990000 (  0.988224)
长灯
str2 = "My another testing string"     
p str2[/(.*)\s/,1] #=> My another testing

如果您不喜欢regexp:

str2 = "My another testing string"
p str2[0...str2.rindex(' ')] #=> My another testing

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP:如何从字符串中删除最后一个单词?

来自分类Dev

如何从字符串中删除最后一个单词?

来自分类Dev

如何检查单词是否是字符串中的最后一个单词?

来自分类Dev

SQL Server查询以从字符串中删除最后一个单词

来自分类Dev

过滤对象数组-删除字符串中的最后一个单词

来自分类Dev

从整个字符串中删除最后一个单词

来自分类Dev

如何在Java中查找字符串中的最后一个单词?

来自分类Dev

如何在Java中查找字符串中的最后一个单词?

来自分类Dev

批处理或PowerShell:如何从字符串中获取最后一个单词?

来自分类Dev

如何在JavaScript中获取单词或字符串的最后一个字母?

来自分类Dev

斯卡拉(Scala)。如何获取字符串中的最后一个单词

来自分类常见问题

从字符串中删除最后一个逗号

来自分类Dev

删除字符串中的最后一个逗号

来自分类Dev

如何从IronPyhon中的字符串中删除最后一个字符?

来自分类Dev

如何从字符串中删除字符的最后一个实例

来自分类Dev

如何从字符串中删除最后一个字符?

来自分类Dev

PHP Regex —删除字符串中最后一个单词之外的所有字符

来自分类Dev

如何从 Visual C# 中的字符串中删除一个单词

来自分类Dev

如何拆分字符串以获取字符串中的最后一个单词或两个单词,但不知道字符数或结尾词数?

来自分类Dev

将字符串中的最后一个单词与最后一个非单词匹配

来自分类Dev

字符串替换一个句子中的多个单词

来自分类Dev

如何在javascript中删除一个单词后的所有字符串?

来自分类Dev

如何从字符串中删除第一个单词?

来自分类Dev

如何删除整列中字符串的第一个单词?

来自分类Dev

如何在javascript中删除一个单词后的所有字符串?

来自分类Dev

如何在Swift中删除字符串的最后一个路径组件?

来自分类Dev

如何在循环中删除字符串中的最后一个分隔符?

来自分类Dev

如何删除字符串中的最后一个逗号?

来自分类Dev

如何删除字符串中的最后一个分号?

Related 相关文章

  1. 1

    PHP:如何从字符串中删除最后一个单词?

  2. 2

    如何从字符串中删除最后一个单词?

  3. 3

    如何检查单词是否是字符串中的最后一个单词?

  4. 4

    SQL Server查询以从字符串中删除最后一个单词

  5. 5

    过滤对象数组-删除字符串中的最后一个单词

  6. 6

    从整个字符串中删除最后一个单词

  7. 7

    如何在Java中查找字符串中的最后一个单词?

  8. 8

    如何在Java中查找字符串中的最后一个单词?

  9. 9

    批处理或PowerShell:如何从字符串中获取最后一个单词?

  10. 10

    如何在JavaScript中获取单词或字符串的最后一个字母?

  11. 11

    斯卡拉(Scala)。如何获取字符串中的最后一个单词

  12. 12

    从字符串中删除最后一个逗号

  13. 13

    删除字符串中的最后一个逗号

  14. 14

    如何从IronPyhon中的字符串中删除最后一个字符?

  15. 15

    如何从字符串中删除字符的最后一个实例

  16. 16

    如何从字符串中删除最后一个字符?

  17. 17

    PHP Regex —删除字符串中最后一个单词之外的所有字符

  18. 18

    如何从 Visual C# 中的字符串中删除一个单词

  19. 19

    如何拆分字符串以获取字符串中的最后一个单词或两个单词,但不知道字符数或结尾词数?

  20. 20

    将字符串中的最后一个单词与最后一个非单词匹配

  21. 21

    字符串替换一个句子中的多个单词

  22. 22

    如何在javascript中删除一个单词后的所有字符串?

  23. 23

    如何从字符串中删除第一个单词?

  24. 24

    如何删除整列中字符串的第一个单词?

  25. 25

    如何在javascript中删除一个单词后的所有字符串?

  26. 26

    如何在Swift中删除字符串的最后一个路径组件?

  27. 27

    如何在循环中删除字符串中的最后一个分隔符?

  28. 28

    如何删除字符串中的最后一个逗号?

  29. 29

    如何删除字符串中的最后一个分号?

热门标签

归档