swathi
swathi

Reputation:

Convert an array of integers into an array of strings in Ruby?

I have an array:

int_array = [11,12]

I need to convert it into

str_array = ['11','12']

I'm new to this technology

Upvotes: 66

Views: 66387

Answers (7)

the shortest option:

int_array.map!(&:to_s)

Upvotes: 0

Rahul Patel
Rahul Patel

Reputation: 1434

array.map(&:to_s) => array of integers into an array of strings

array.map(&:to_i) => array of strings into an array of integers

Upvotes: 23

Idan Wender
Idan Wender

Reputation: 987

map and collect functions will work the same here.

int_array = [1, 2, 3]

str_array = int_array.map { |i| i.to_s }
=> str_array = ['1', '2', '3']

You can acheive this with one line:

array = [1, 2, 3]
array.map! { |i| i.to_s }

and you can use a really cool shortcut for proc: (https://stackoverflow.com/a/1961118/2257912)

array = [1, 2, 3]
array.map!(&:to_s)

Upvotes: 17

ChuckJHardy
ChuckJHardy

Reputation: 7066

Returns Int

x = [1,2,3,4,5,6,7,8,9,10] # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Returns String

y = 1,2,3,4,5 # => ["1", "2", "3", "4", "5"]

Upvotes: -3

srboisvert
srboisvert

Reputation: 12759

Start up irb

irb(main):001:0> int_array = [11,12]
=> [11, 12]
irb(main):002:0> str_array = int_array.collect{|i| i.to_s}
=> ["11", "12"]

Your problem is probably somewhere else. Perhaps a scope confusion?

Upvotes: 4

nuriaion
nuriaion

Reputation: 2631

str_array = int_array.collect{|i| i.to_s}

Upvotes: 46

gtd
gtd

Reputation: 17246

str_array = int_array.map(&:to_s)

Upvotes: 135

Related Questions