You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中如何拆分字符串、删除指定位置元素后重新拼接?

错误原因

delete_at 方法的返回值是被删除的元素本身,不是删除元素后的数组,所以你链式调用 join 时,实际是给被删除的字符串 "1010.1" 调用 join 方法,自然会抛出不存在该方法的错误。

正确实现方式

写法1:拆分后先存为变量再操作

s = '2.3-6020-1010.1-4.0-M-671924'
arr = s.split('-')
arr.delete_at(2) # 注意Ruby数组从0开始计数,要删第三个元素对应索引为2
new_s = arr.join('-')

执行后 new_s 的值就是你需要的 "2.3-6020-4.0-M-671924"。

写法2:用tap方法实现链式调用

如果不想单独声明变量存拆分后的数组,可以用tap方法在原数组操作后直接返回数组本身:

new_s = s.split('-').tap { |arr| arr.delete_at(2) }.join('-')

内容的提问来源于stack exchange,提问作者current_user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:24:03