/ / संख्याओं के एक संस्करण को धक्का देना जो एक सरणी में स्ट्रिंग हैं - रूबी, सरणियां, चर

एक सरणी में तारों की संख्याओं को धक्का देना - रूबी, सरणी, चर

मेरे पास एक चर है जो निम्नलिखित की तरह दिखता है:

my_var = "123, 222, 333, 444, 555, 1024, 44444"

उन मूल्यों में से प्रत्येक को एक सरणी में धकेलने के लिए एक कठिन समय निकल रहा है।

my_array = []
my_array.push(my_var)
=> ["123, 222, 333, 444, 555, 1024, 44444"]
puts my_array[0]
=> 1

मैं पाने की कोशिश कर रहा हूँ:

puts my_array[0]
=> 123

उत्तर:

जवाब के लिए 2 № 1

उपयोग String#split की सरणी प्राप्त करने की विधि तार पहले, फिर उन्हें रूपांतरित करें पूर्णांक का उपयोग करते हुए String#to_i :

ary = my_var.split(",").map(&:to_i)
# => [123, 222, 333, 444, 555, 1024, 44444]
p ary[0]
# => 123

या प्रयोग करें String#scan तरीका

ary = my_var.scan(/d+/).map(&:to_i)
# => [123, 222, 333, 444, 555, 1024, 44444]
p ary[0]
# => 123

जवाब के लिए 2 № 2

एक और तरीका है रूबी का उपयोग करना CSV वर्ग:

require "csv"

my_var = "123, 222, 333, 444, 555, 1024, 44444"

CSV.parse_line(my_var, converters: :numeric)
#=> [123, 222, 333, 444, 555, 1024, 44444]