我需要将表示数字的数组中的字符串转换为整数。
["", "22", "14", "18"]
进入
[22, 14, 18]
我该怎么做?
要将字符串转换为数字,您需要 to_i 方法
to_i
要转换字符串数组,需要遍历数组项并应用 to\u i 在他们身上。你可以通过 map 或 map! 方法:
to\u i
map
map!
> ["", "22", "14", "18"].map(&:to_i) # Result: [0, 22, 14, 18]
既然不想 0 -正如@SebastianPalma在评论中所说,您需要使用额外的操作来删除空字符串:(以下是他的答案!请投票支持他的评论:D)
0
> ["", "22", "14", "18"].reject(&:empty?).map(&:to_i) # Result: [22, 14, 18]
两者之间的区别 地图 和 地图 是吗 地图 将返回一个新数组,而 地图 将更改原始数组。
地图
您可以使用选择包含数字的字符串 grep :
grep
["", "22", "14", "18"].grep(/\d+/) #=> ["22", "14", "18"]
并通过 to_i 通过将块传递给 格雷普 :
格雷普
["", "22", "14", "18"].grep(/\d+/, &:to_i) #=> [22, 14, 18]
根据您的输入,您可能需要更严格的模式,如 /\A\d+\z/ .
/\A\d+\z/