Mam tablicę ruby, taką jak ['12','34','35','231']
.Tablica ruby do konwersji ciągów znaków
Chcę przekonwertować go na ciąg znaków, taki jak '12','34','35','231'
.
Jak mogę to zrobić?
Mam tablicę ruby, taką jak ['12','34','35','231']
.Tablica ruby do konwersji ciągów znaków
Chcę przekonwertować go na ciąg znaków, taki jak '12','34','35','231'
.
Jak mogę to zrobić?
ja przyłączyć się do zabawy z:
['12','34','35','231'].join(",")
EDIT:
"'#{['12','34','35','231'].join("','")}'"
Niektóre interpolacja ciąg dodać pierwszy i ostatni jeden cytat: P
> a = ['12','34','35','231']
> a.map { |i| "'" + i.to_s + "'" }.join(",")
=> "'12','34','35','231'"
Może używając ' " '# {i}'"' zamiast. –
Nie myśl, że mapa jest potrzebna. dołączyć powinno załatwić sprawę. zobacz poniżej – djburdick
fajne, działało jak urok dla mnie! –
array.inspect.inspect.gsub(/\[|\]/, "")
mógłby rade
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
a jeszcze inna odmianę
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(',')
Cytując Mladena, "Być może [używaj]" "" # {i} "" zamiast ". –
string_arr.map(&:inspect).join(',') # or other separator
Doskonała odpowiedź. –
To nie daje prawidłowego wyniku - wartości muszą być zawijane w pojedyncze cudzysłowy. Gdyby to było pożądane wyjście, lepszym rozwiązaniem byłby string_arr.join (","). –
Sean, mylisz się. Czy uruchomiłeś wyrażenie, co najmniej raz? – avihil
znajdę ten sposób czytelny i rubyish:
add_quotes =- > x{"'#{x}'"}
p ['12','34','35','231'].map(&add_quotes).join(',') => "'12','34','35','231'"
Najprostszym sposobem byłoby wykorzystanie dołączyć, a następnie przekształcić go w liczba całkowita.
array.join.to_i
Można użyć trochę funkcjonalne podejście do programowania, przekształcając dane:
['12','34','35','231'].map{|i| "'#{i}'"}.join(",")
To daje "12,34,35,231". Brakuje pojedynczych cudzysłowów w wyniku. – Alkaline
Okay dodał trochę interpolacji ciągów, aby dodać pierwsze i ostatnie pojedyncze cytaty: P – corroded
jak to zmienić? – zx1986