删除 Ruby 中字符串的特定部分
我有一个字符串 str = "abcdefghij"
,我想将 str2
设置为 str 减去第 4 个到第 6 个字符(假设基于 0 的索引)。
是否可以一次性完成此操作? slice!
似乎可以做到这一点,但它需要至少 3 个语句(复制、切片,然后使用字符串)。
I have a String str = "abcdefghij"
, and I want to set str2
to str minus the 4th to 6th character (assuming 0 based index).
Is it possible to do this in one go? slice!
seems to do it, but it requires atleast 3 statements (duplicating, slicing, and then using the string).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一种常见的方法是这样做:
但仍然需要两个步骤。
如果你想要的范围是连续的,那么你可以一步完成
A common way is to do it like this:
but it still requires two steps.
If the range you want is continuous, then you can do it in one step
根据您要删除的具体内容, http://ruby-doc.org/ core/classes/String.html#M001201 可能是一个选择。
你可能可以用正则表达式做一些淫秽的事情:
但这很恶心。
Depending on what exactly you're deleting, http://ruby-doc.org/core/classes/String.html#M001201 might be an option.
You could probably do obscene things with regexes:
But that's gross.
我继续使用以下解决方案:
事实证明,它比提供的其他解决方案更快、更干净。这是一个迷你基准。
Ruby 1.9.2 上的输出
编辑:更新
<<
。脚本:
Ruby 1.9.2 上的输出
I went ahead with using the following:
It turned out to be faster and cleaner than the other solutions presented. Here's a mini benchmark.
Output on Ruby 1.9.2
Edit: Update for
<<
.Script:
Output on Ruby 1.9.2