मेरे पास एक तार है
"1,2,3,4"
और मैं इसे एक सरणी में बदलना चाहता हूं:
[1,2,3,4]
कैसे?
मेरे पास एक तार है
"1,2,3,4"
और मैं इसे एक सरणी में बदलना चाहता हूं:
[1,2,3,4]
कैसे?
जवाबों:
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]
या पूर्णांकों के लिए:
>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]
या माणिक के बाद के संस्करणों के लिए (> = 1.9 - जैसा कि एलेक्स द्वारा बताया गया है):
>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]
String Integer
रूप में अंतरिक्ष के बिनाString
arr = "12345"
arr.split('')
output: ["1","2","3","4","5"]
String Integer
के रूप में अंतरिक्ष के साथString
arr = "1 2 3 4 5"
arr.split(' ')
output: ["1","2","3","4","5"]
String Integer
रूप में अंतरिक्ष के बिनाInteger
arr = "12345"
arr.split('').map(&:to_i)
output: [1,2,3,4,5]
arr = "abc"
arr.split('')
output: ["a","b","c"]
स्पष्टीकरण :
arr
-> स्ट्रिंग जो आप किसी भी कार्य को करने जा रहे हैं।split()
-> एक विधि है, जो इनपुट को विभाजित करती है और इसे सरणी के रूप में संग्रहीत करती है।''
या ' '
या ','
-> एक मूल्य है, जो की जरूरत है दिया स्ट्रिंग से निकाले जाने का है।एक स्ट्रिंग को बदलने के लिए सबसे सरल तरीका जो एक सीमांकक की तरह एक सीमांकक है बस विभाजन विधि का उपयोग करने के लिए है
"1,2,3,4".split(',') # "1", "2", "3", "4"]
आप रूबी डॉक्स में विभाजित विधि का उपयोग करने के बारे में अधिक जानकारी पा सकते हैं
इन पदार्थों की एक सरणी को वापस करके, एक सीमांकक के आधार पर सब्सट्रिंग्स में विभाजित होते हैं।
यदि पैटर्न एक स्ट्रिंग है, तो स्ट्रेट को विभाजित करते समय इसकी सामग्री को सीमांकक के रूप में उपयोग किया जाता है। यदि पैटर्न एक एकल स्थान है, तो व्हाट्सएप पर स्ट्रेट को विभाजित किया जाता है, जिसमें प्रमुख व्हाट्सएप और सन्निहित व्हाट्सएप के पात्रों को अनदेखा किया जाता है।
यदि पैटर्न एक Regexp है, तो str को विभाजित किया जाता है जहां पैटर्न मैच करता है। जब भी पैटर्न एक शून्य-लंबाई स्ट्रिंग से मेल खाता है, str व्यक्तिगत वर्णों में विभाजित होता है। यदि पैटर्न में समूह होते हैं, तो संबंधित मैच सरणी में भी वापस आ जाएंगे।
यदि पैटर्न छोड़ा गया है, तो $ का मूल्य; प्रयोग किया जाता है। अगर $; nil (जो कि डिफ़ॉल्ट है), str को व्हॉट्सएप पर विभाजित किया जाता है जैसे कि '' निर्दिष्ट किए गए थे।
यदि सीमा पैरामीटर को छोड़ दिया जाता है, तो पीछे वाले नल फ़ील्ड को दबा दिया जाता है। यदि सीमा एक सकारात्मक संख्या है, तो उस क्षेत्र की अधिकांश संख्या वापस आ जाएगी (यदि सीमा 1 है, तो संपूर्ण स्ट्रिंग को एक सरणी में केवल प्रविष्टि के रूप में वापस किया जाता है)। यदि ऋणात्मक है, तो लौटे हुए फ़ील्ड की संख्या की कोई सीमा नहीं है, और पीछे वाले अशक्त फ़ील्ड को दबाया नहीं जाता है।
"12345".each_char.map(&:to_i)
each_char
मूल रूप से ऐसा ही करता है split('')
: यह एक स्ट्रिंग को अपने वर्णों की एक सरणी में विभाजित करता है।
हम्म, मुझे अभी पता चला है कि मूल प्रश्न में स्ट्रिंग में अल्पविराम होता है, इसलिए मेरा उत्तर वास्तव में मददगार नहीं है ;-(