У меня есть массив ruby, как ['12','34','35','231'].
['12','34','35','231']
Я хочу преобразовать его в строку типа '12','34','35','231'.
'12','34','35','231'
Как я могу это сделать?
Я присоединюсь к веселью с:
['12','34','35','231'].join(', ')
EDIT:
"'#{['12','34','35','231'].join("', '")}'"
Некоторая строковая интерполяция для добавления первой и последней одинарных кавычек: P
> a = ['12','34','35','231'] > a.map { |i| "'" + i.to_s + "'" }.join(",") => "'12','34','35','231'"
попробуйте этот код ['12','34','35','231']*","
['12','34','35','231']*","
даст вам результат "12,34,35,231"
Надеюсь, это результат вас, дайте мне знать
array.map{ |i| %Q('#{i}') }.join(',')
string_arr.map(&:inspect).join(',') # or other separator
Я считаю этот способ читабельным и рубиновым:
add_quotes =- > x{"'#{x}'"} p ['12','34','35','231'].map(&add_quotes).join(',') => "'12','34','35','231'"
> puts "'"+['12','34','35','231']*"','"+"'" '12','34','35','231' > puts ['12','34','35','231'].inspect[1...-1].gsub('"',"'") '12', '34', '35', '231'
И еще один вариант
a = ['12','34','35','231'] a.to_s.gsub(/\"/, '\'').gsub(/[\[\]]/, '')
irb(main)> varA => {0=>["12", "34", "35", "231"]} irb(main)> varA = Hash[*ex.collect{|a,b| [a,b.join(",")]}.flatten] ...
irb(main):027:0> puts ['12','34','35','231'].inspect.to_s[1..-2].gsub('"', "'") '12', '34', '35', '231' => nil