webentwicklung-frage-antwort-db.com.de

Ruby Konvertierung von Array zu String

Ich habe ein Ruby Array wie ['12','34','35','231'].

Ich möchte es in einen String wie '12','34','35','231' Konvertieren.

Wie kann ich das machen?

162
Sachin R

Ich werde mitmachen mit:

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

EDIT:

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

Einige Zeichenfolgeninterpolation, um das erste und letzte einfache Anführungszeichen hinzuzufügen: P

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

versuche diesen Code ['12','34','35','231']*","

sie erhalten das Ergebnis "12,34,35,231"

Ich hoffe, das ist das Ergebnis, lassen Sie es mich wissen

28
array.map{ |i|  %Q('#{i}') }.join(',')
10
wildcountry
string_arr.map(&:inspect).join(',') # or other separator
9
avihil

Ich finde diesen Weg lesbar und rubinrot:

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

p  ['12','34','35','231'].map(&add_quotes).join(',') => "'12','34','35','231'"
7
hirolau
> puts "'"+['12','34','35','231']*"','"+"'"
'12','34','35','231'

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

Und noch eine Variation

a = ['12','34','35','231']
a.to_s.gsub(/\"/, '\'').gsub(/[\[\]]/, '')
4
Bernard
irb(main)> varA
=> {0=>["12", "34", "35", "231"]}
irb(main)> varA = Hash[*ex.collect{|a,b| [a,b.join(",")]}.flatten]
...
3
NinjaCat
irb(main):027:0> puts ['12','34','35','231'].inspect.to_s[1..-2].gsub('"', "'")
'12', '34', '35', '231'
=> nil
2
ngoozeff

Sie können einen funktionalen Programmieransatz verwenden, um Daten zu transformieren:

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

1