Ruby数组到字符串的转换

时间:2010-08-17 08:55:58

标签: ruby arrays string

我有像['12','34','35','231']这样的红宝石数组。

我想将其转换为类似'12','34','35','231'的字符串。

我该怎么做?

13 个答案:

答案 0 :(得分:286)

我将加入以下乐趣:

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

修改

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

添加第一个和最后一个单引号的字符串插值:P

答案 1 :(得分:41)

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

答案 2 :(得分:26)

尝试此代码['12','34','35','231']*","

会给你结果“12,34,35,231”

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

答案 3 :(得分:10)

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

答案 4 :(得分:9)

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

答案 5 :(得分:7)

我发现这种方式可读并且是红宝石:

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

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

答案 6 :(得分:5)

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

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

答案 7 :(得分:4)

还有另一种变化

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

答案 8 :(得分:3)

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

答案 9 :(得分:2)

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

答案 10 :(得分:1)

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

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

答案 11 :(得分:0)

假设您的数组:

arr=["1","2","3","4"]

将数组转换为字符串的方法:

Array_name.join(",")

示例:

arr.join(",")

结果:

"'1','2','3','4'"

答案 12 :(得分:-5)

array.inspect.inspect.gsub(/\[|\]/, "")可以做到这一点