将字符串数组转换为整数数组

时间:2018-01-23 23:05:04

标签: ruby

我需要将表示数字的数组中的字符串转换为整数。

[22, 14, 18]

handler.postDelayed(this, 1000);

我该怎么做?

2 个答案:

答案 0 :(得分:4)

要将字符串转换为数字,您需要使用to_i方法。

要转换字符串数组,您需要遍历数组项并在其上应用to_i。您可以使用mapmap!方法实现这一目标:

> ["", "22", "14", "18"].map(&:to_i)
# Result: [0, 22, 14, 18]

因为不想0 - 正如@Sebastian Palma在评论中所说,你将需要使用额外的操作来删除空字符串:(以下是他的答案!投票给他的评论相反:D)

> ["", "22", "14", "18"].reject(&:empty?).map(&:to_i)
# Result: [22, 14, 18]

mapmap!之间的区别在于map将返回一个新数组,而map!将更改原始数组。

答案 1 :(得分:2)

您可以使用grep选择包含数字的字符串:

["", "22", "14", "18"].grep(/\d+/)
#=> ["22", "14", "18"]

通过将块传递给grep

,通过to_i转换它们
["", "22", "14", "18"].grep(/\d+/, &:to_i)
#=> [22, 14, 18]

根据您的输入,您可能需要更具限制性的模式,例如/\A\d+\z/