Tengo una matriz de ruby como ['12','34','35','231']
.matriz de Ruby para la conversión de cadena
Quiero convertirlo en una cadena como '12','34','35','231'
.
¿Cómo puedo hacer eso?
Tengo una matriz de ruby como ['12','34','35','231']
.matriz de Ruby para la conversión de cadena
Quiero convertirlo en una cadena como '12','34','35','231'
.
¿Cómo puedo hacer eso?
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
> a = ['12','34','35','231']
> a.map { |i| "'" + i.to_s + "'" }.join(",")
=> "'12','34','35','231'"
Tal vez el uso de ' " '# {i}'"' en lugar. –
no creo que se necesite el mapa. unirse debería hacer el truco. ver abajo – djburdick
genial, funcionó como un encanto para mí! –
array.inspect.inspect.gsub(/\[|\]/, "")
podría hacer el truco
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
Y otra variación
a = ['12','34','35','231']
a.to_s.gsub(/\"/, '\'').gsub(/[\[\]]/, '')
> puts "'"+['12','34','35','231']*"','"+"'"
'12','34','35','231'
> puts ['12','34','35','231'].inspect[1...-1].gsub('"',"'")
'12', '34', '35', '231'
array.map{ |i| %Q('#{i}') }.join(',')
Para citar a Mladen, "Quizás [use]' "'# {i}'" 'en su lugar." –
string_arr.map(&:inspect).join(',') # or other separator
Excelente respuesta. –
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. –
Sean, estás equivocado. ¿Has ejecutado la expresión, al menos una vez? – avihil
me parece esta manera legible y rubyish:
add_quotes =- > x{"'#{x}'"}
p ['12','34','35','231'].map(&add_quotes).join(',') => "'12','34','35','231'"
El método más simple sería utilizar unirse y luego convertirlo a una entero.
array.join.to_i
Puede utilizar algún método de programación funcional, transformando los datos:
['12','34','35','231'].map{|i| "'#{i}'"}.join(",")
Eso resulta en "12,34,35,231". Faltan las comillas simples en el resultado. – Alkaline
Bien, se ha agregado una interpolación de cadenas para agregar la primera y la última comilla simple: P – corroded
¿cómo revertir esto? – zx1986