【发布时间】:2011-03-30 20:55:59
【问题描述】:
我有一个像 ['12','34','35','231'] 这样的 ruby 数组。
我想把它转换成'12','34','35','231'这样的字符串。
我该怎么做?
【问题讨论】:
我有一个像 ['12','34','35','231'] 这样的 ruby 数组。
我想把它转换成'12','34','35','231'这样的字符串。
我该怎么做?
【问题讨论】:
我会和他一起玩:
['12','34','35','231'].join(', ')
编辑:
"'#{['12','34','35','231'].join("', '")}'"
一些字符串插值来添加第一个和最后一个单引号:P
【讨论】:
JSON.parse("[12, 39, 100]") 将返回一个数组。
> a = ['12','34','35','231']
> a.map { |i| "'" + i.to_s + "'" }.join(",")
=> "'12','34','35','231'"
【讨论】:
"'#{i}'"。
试试这个代码['12','34','35','231']*","
会给你结果“12,34,35,231”
我希望这是你的结果,让我知道
【讨论】:
array.map{ |i| %Q('#{i}') }.join(',')
【讨论】:
"'#{i}'" 代替。”
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
【讨论】:
您可以使用一些函数式编程方法,转换数据:
['12','34','35','231'].map{|i| "'#{i}'"}.join(",")
【讨论】:
假设你的数组:
arr=["1","2","3","4"]
数组转字符串方法:
Array_name.join(",")
例子:
arr.join(",")
结果:
"'1','2','3','4'"
【讨论】:
array.inspect.inspect.gsub(/\[|\]/, "") 可以解决问题
【讨论】: