Trip
Trip

Reputation: 27114

Split a string into an array of numbers

My string:

>> 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"

How can this become an array of separate numbers like :

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

Upvotes: 11

Views: 29227

Answers (3)

Phrogz
Phrogz

Reputation: 303156

Note that what you ask for is not an array of separate numbers, but an array of strings that look like numbers. As noted by others, you can get that with:

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

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

If you actually wanted an array of numbers (Integers), you could do it like so:

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 }

Upvotes: 6

Jonas Elfstr&#246;m
Jonas Elfstr&#246;m

Reputation: 31428

Try this:

arr = "07016,07023,07027".split(",")

Upvotes: 14

Matt Greer
Matt Greer

Reputation: 62027

result = params[:value].split(/,/)

String#split is what you need

Upvotes: 37

Related Questions