Преобразование массива Ruby в строку - PullRequest
155 голосов
/ 17 августа 2010

У меня есть массив ruby, как ['12','34','35','231'].

Я хочу преобразовать его в строку типа '12','34','35','231'.

Как я могу это сделать?

Ответы [ 12 ]

287 голосов
/ 17 августа 2010

Я присоединюсь к веселью с:

['12','34','35','231'].join(', ')

EDIT:

"'#{['12','34','35','231'].join("', '")}'"

Некоторая строковая интерполяция для добавления первой и последней одинарных кавычек: P

41 голосов
/ 17 августа 2010
> a = ['12','34','35','231']
> a.map { |i| "'" + i.to_s + "'" }.join(",")
=> "'12','34','35','231'"
26 голосов
/ 20 декабря 2012

попробуйте этот код ['12','34','35','231']*","

даст вам результат "12,34,35,231"

Надеюсь, это результат вас, дайте мне знать

10 голосов
/ 14 октября 2011
array.map{ |i|  %Q('#{i}') }.join(',')
9 голосов
/ 31 января 2013
string_arr.map(&:inspect).join(',') # or other separator
7 голосов
/ 22 января 2015

Я считаю этот способ читабельным и рубиновым:

add_quotes =- > x{"'#{x}'"}

p  ['12','34','35','231'].map(&add_quotes).join(',') => "'12','34','35','231'"
5 голосов
/ 17 августа 2010
> puts "'"+['12','34','35','231']*"','"+"'"
'12','34','35','231'

> puts ['12','34','35','231'].inspect[1...-1].gsub('"',"'")
'12', '34', '35', '231'
4 голосов
/ 17 августа 2010

И еще один вариант

a = ['12','34','35','231']
a.to_s.gsub(/\"/, '\'').gsub(/[\[\]]/, '')
3 голосов
/ 17 августа 2010
irb(main)> varA
=> {0=>["12", "34", "35", "231"]}
irb(main)> varA = Hash[*ex.collect{|a,b| [a,b.join(",")]}.flatten]
...
2 голосов
/ 17 августа 2010
irb(main):027:0> puts ['12','34','35','231'].inspect.to_s[1..-2].gsub('"', "'")
'12', '34', '35', '231'
=> nil
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...