Массив Ruby для преобразования строк

У меня есть рубиновый массив вроде ['12','34','35','231'].

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

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

Ответ 1

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

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

EDIT:

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

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

Ответ 2

> a = ['12','34','35','231']
> a.map { |i| "'" + i.to_s + "'" }.join(",")
=> "'12','34','35','231'"

Ответ 3

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

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

Я надеюсь, что это результат, который вы дадите мне знать

Ответ 4

array.map{ |i|  %Q('#{i}') }.join(',')

Ответ 5

string_arr.map(&:inspect).join(',') # or other separator

Ответ 6

> puts "'"+['12','34','35','231']*"','"+"'"
'12','34','35','231'

> puts ['12','34','35','231'].inspect[1...-1].gsub('"',"'")
'12', '34', '35', '231'

Ответ 7

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

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

p  ['12','34','35','231'].map(&add_quotes).join(',') => "'12','34','35','231'"

Ответ 8

irb(main)> varA
=> {0=>["12", "34", "35", "231"]}
irb(main)> varA = Hash[*ex.collect{|a,b| [a,b.join(",")]}.flatten]
...

Ответ 9

И еще одна вариация

a = ['12','34','35','231']
a.to_s.gsub(/\"/, '\'').gsub(/[\[\]]/, '')

Ответ 10

irb(main):027:0> puts ['12','34','35','231'].inspect.to_s[1..-2].gsub('"', "'")
'12', '34', '35', '231'
=> nil

Ответ 11

Самый простой способ - использовать соединение, а затем преобразовать его в целое число.

    array.join.to_i

Ответ 12

Я пошел бы за

['12','34','35','231'].inspect.tr('"',"'").tr("[] ",'')

который дает вам ровно

'12','34','35','231'

tr намного быстрее, чем gsub.

Ответ 13

Вы можете использовать некоторый подход к функциональному программированию, преобразуя данные:

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

Ответ 14

array.inspect.inspect.gsub(/\[|\]/, "") мог сделать трюк