Как разбить строку на массив в виде целых чисел - PullRequest
15 голосов
/ 07 апреля 2011

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

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

Текущий результат представляет собой массив строк "4", "3"

Есть ли какой-либо ярлык для разделения его непосредственно на целые числа?

Ответы [ 4 ]

40 голосов
/ 07 апреля 2011
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 

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

9 голосов
/ 07 апреля 2011
"4x3".split("x").map(&:to_i)

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

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

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

3 голосов
/ 07 апреля 2011
>> "4x3".split("x").map(&:to_i)
=> [4, 3]
0 голосов
/ 08 апреля 2011

Вы пытались увидеть, позволит ли анализатор выражений, упомянутый в , ответить на ваш предыдущий вопрос , сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...