Разбить строку на массив чисел - PullRequest
9 голосов
/ 01 апреля 2011

Моя строка:

>> pp params[:value]
"07016,07023,07027,07033,07036,07060,07062,07063,07065,07066,07076,07081,07083,07088,07090,07092,07201,07202,07203,07204,07205,07206,07208,07901,07922,07974,08812,07061,07091,07207,07902"

Как это может стать массивом отдельных чисел вроде:

["07016", "07023", "07033" ... ]

Ответы [ 3 ]

34 голосов
/ 01 апреля 2011
result = params[:value].split(/,/)

String # split - это то, что вам нужно

13 голосов
/ 01 апреля 2011

Попробуйте это :

arr = "07016,07023,07027".split(",")
6 голосов
/ 01 апреля 2011

Обратите внимание, что вы запрашиваете не массив отдельных чисел, а массив строк, которые выглядят как числа. Как отмечают другие, вы можете получить это с:

arr = params[:value].split(',')

# Alternatively, assuming integers only
arr = params[:value].scan(/\d+/)

Если вам действительно нужен массив чисел (целых чисел), вы можете сделать это так:

arr = params[:value].split(',').map{ |s| s.to_i }

# Or, for Ruby 1.8.7+
arr = params[:value].split(',').map(&:to_i)

# Silly alternative
arr = []; params[:value].scan(/\d+/){ |s| arr << s.to_i }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...