2010-08-17 10 views

Respuesta

245

Voy a unirse a la diversión con:

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

EDIT:

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

Algunos interpolación de cadenas para añadir la primera y la última comilla simple: P

+0

Eso resulta en "12,34,35,231". Faltan las comillas simples en el resultado. – Alkaline

+1

Bien, se ha agregado una interpolación de cadenas para agregar la primera y la última comilla simple: P – corroded

+0

¿cómo revertir esto? – zx1986

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

Tal vez el uso de ' " '# {i}'"' en lugar. –

+0

no creo que se necesite el mapa. unirse debería hacer el truco. ver abajo – djburdick

+0

genial, funcionó como un encanto para mí! –

-4

array.inspect.inspect.gsub(/\[|\]/, "") podría hacer el truco

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

Y otra variación

a = ['12','34','35','231'] 
a.to_s.gsub(/\"/, '\'').gsub(/[\[\]]/, '') 
5
> puts "'"+['12','34','35','231']*"','"+"'" 
'12','34','35','231' 

> puts ['12','34','35','231'].inspect[1...-1].gsub('"',"'") 
'12', '34', '35', '231' 
10
array.map{ |i| %Q('#{i}') }.join(',') 
+1

Para citar a Mladen, "Quizás [use]' "'# {i}'" 'en su lugar." –

25

probar este código ['12','34','35','231']*","

te dará resultado "12,34,35,231"

espero que este es el resultado que, hágamelo saber

+0

Creo que el OP necesita tener la comilla simple también. – Laf

+0

Bueno, trabajo para mí :) – SSR

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

Excelente respuesta. –

+0

Esto no produce la salida correcta; los valores deben estar entre comillas simples. Si este fuera el resultado deseado, string_arr.join (",") sería la mejor opción. –

+0

Sean, estás equivocado. ¿Has ejecutado la expresión, al menos una vez? – avihil

5

me parece esta manera legible y rubyish:

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

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

El método más simple sería utilizar unirse y luego convertirlo a una entero.

array.join.to_i 
0

Puede utilizar algún método de programación funcional, transformando los datos:

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

Cuestiones relacionadas