Как разбить строку на массив как целые числа
Учитывая что-то вроде этого
@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]
Ответ 4
Попробовали ли вы, если бы выражение парсер, упомянутое в ответе на ваш предыдущий вопрос, позволит вам это сделать?