Ruby数组到string转换

我有一个像['12','34','35','231']的ruby数组。

我想把它转换成像'12','34','35','231'这样的string。

我怎样才能做到这一点?

我将join以下乐趣:

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

编辑:

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

一些string插值添加第一个和最后一个单引号: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”

我希望这是你的结果,让我知道

 array.map{ |i| %Q('#{i}') }.join(',') 
 string_arr.map(&:inspect).join(',') # or other separator 
 > puts "'"+['12','34','35','231']*"','"+"'" '12','34','35','231' > puts ['12','34','35','231'].inspect[1...-1].gsub('"',"'") '12', '34', '35', '231' 

我发现这种方式可读性和ruby:

 add_quotes =- > x{"'#{x}'"} p ['12','34','35','231'].map(&add_quotes).join(',') => "'12','34','35','231'" 
 irb(main)> varA => {0=>["12", "34", "35", "231"]} irb(main)> varA = Hash[*ex.collect{|a,b| [a,b.join(",")]}.flatten] ... 

还有另一种变化

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

最简单的方法是使用连接,然后将其转换为整数。

  array.join.to_i 

我会去的

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

这完全给你

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

trgsub快得多。

您可以使用一些函数式编程方法,转换数据:

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

array.inspect.inspect.gsub(/\[|\]/, "")可以做的伎俩