2011-03-27 7 views
8

मैं कर रहा हूँ:तारों को विभाजित करते समय हटाए गए रिक्त आइटमों को पीछे छोड़ने से मैं कैसे बचूं?

"b::::c:::".split(':') 

परिणाम:

["b", "", "", "", "c", "", ""] # expect 
["b", "", "", "", "c"] # actual 

क्या समस्या यहाँ है? मुझे उम्मीद है कि मैं क्या उम्मीद कर सकता हूं।

+3

बस संदर्भ के लिए, यहाँ [स्ट्रिंग # विभाजन] के लिए दस्तावेज़ है (http://rubydoc.info/stdlib/core/1.9.2/String#split-instance_method)। –

+1

यह एक अच्छा सवाल है। मैंने स्ट्रिंग # पूरी तरह विभाजित पढ़ा और इस के साथ अपने सिर खरोंच कर रहा था। – Plasmarob

उत्तर

18

.split(pattern=$;, [limit]) पर limit पैरामीटर है। यदि limit छोड़ा गया है, पीछे के नल फ़ील्ड दबाए जाते हैं। आप के मन में एक नकारात्मक limit

"b::::c:::".split(':', -1) 

लेकिन भालू प्रदान करने के लिए है कि इस सरणी के अंत में तीन "" मूल्यों वापस आ जाएगी की जरूरत है।

result: ["b", "", "", "", "c", "", "", ""] 
+0

धन्यवाद, इससे मदद मिली। – user612308

+1

मैं ईमानदारी से सोचता हूं कि इस प्रश्न को एसओओ पर अधिक ध्यान देने की जरूरत है। यह खोजना वाकई मुश्किल था और मैंने लगभग उसी सटीक क्यू से पूछा। – Plasmarob

+0

रूबी स्प्लिट @ http://gfxmonk.net/2011/09/04/ruby-s-split-function-makes-me-feel-special-in-a-bad-way.html के बारे में और जानने के लिए इसे पढ़ें –

संबंधित मुद्दे