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

如何将Ruby数组字符串转换为整数数组?

解决字符串数组转整数数组的问题

哦,我知道问题出在哪啦!你原来的字符串ids首尾带着[和],当你用split(/,\s?/)拆分后,第一个元素其实是"[1"——这个字符串以非数字字符开头,Ruby的to_i方法遇到这种情况会直接返回0,这就是第一个数字变成0的原因。

给你几个靠谱的解决方法,按需选择就行:

方法1:先清理首尾括号再拆分转换

这种方法很直观,先把字符串开头的[和结尾的]去掉,再按你的思路拆分转换:

ids = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
# 用正则去掉首尾的括号
cleaned_str = ids.gsub(/^\[|\]$/, '')
id_numbers = cleaned_str.split(/,\s?/).map(&:to_i)
# 结果就是 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

方法2:用JSON解析(最健壮)

因为你的字符串刚好是标准的JSON数组格式,直接用Ruby的JSON库解析是最稳妥的方式,还能处理更复杂的情况:

require 'json'

ids = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
id_numbers = JSON.parse(ids)
# 一步到位得到整数数组,无需手动处理分隔符或括号

方法3:直接提取所有数字

如果字符串里除了目标数字没有其他干扰数字,用scan提取所有连续数字的片段再转换也很简单:

ids = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
id_numbers = ids.scan(/\d+/).map(&:to_i)
# scan会把所有数字片段捞出来,直接转成整数数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:24:40