Как разбить строку на массив как целые числа

Учитывая что-то вроде этого

@grid = "4x3".split("x")

Текущий результат - это массив строк "4", "3"

Есть ли ярлык, чтобы разбить его на целые числа?

Ответы

Ответ 1

ruby-1.9.2-p136 :001 > left, right =  "4x3".split("x").map(&:to_i)
 => [4, 3] 
ruby-1.9.2-p136 :002 > left
 => 4 
ruby-1.9.2-p136 :003 > right
 => 3 

Вызвать карту на результирующем массиве для преобразования в целые числа и присвоить каждое значение слева и справа соответственно.

Ответ 2

"4x3".split("x").map(&:to_i)

если вы не хотите быть слишком строгим,

"4x3".split("x").map {|i| Integer(i) }

если вы хотите генерировать исключения, если числа не выглядят как целые числа (скажем, "koi4xfish" )

Ответ 3

>> "4x3".split("x").map(&:to_i)
=> [4, 3]