हाँ, यहाँ एक और उत्तर की आवश्यकता है!
सभी समाधान इस प्रकार दूर करने के लिए विहित इनपुट के सीमित डोमेन को संबोधित करते हैं , बुद्धि के लिए: तत्वों के बीच एक ही व्हाट्सएप चरित्र (हालांकि कम से कम समस्या का उल्लेख करने के लिए @ हैचर्नो के लिए टिप)। लेकिन मैं प्रस्तुत करता हूं कि सभी में लेकिन सबसे अस्पष्ट परिदृश्य, इन सभी को विभाजित करके समान परिणाम प्राप्त करना चाहिए :
string myStrA = "The quick brown fox jumps over the lazy dog";
string myStrB = "The quick brown fox jumps over the lazy dog";
string myStrC = "The quick brown fox jumps over the lazy dog";
string myStrD = " The quick brown fox jumps over the lazy dog";
String.Split
(यहाँ अन्य जवाबों में दिखाए गए किसी भी फ्लेवर में) बस तब तक अच्छी तरह से काम नहीं करता है जब तक कि आप RemoveEmptyEntries
इनमें से किसी एक के साथ विकल्प संलग्न नहीं करते हैं :
myStr.Split(new char[0], StringSplitOptions.RemoveEmptyEntries)
myStr.Split(new char[] {' ','\t'}, StringSplitOptions.RemoveEmptyEntries)
जैसा कि चित्रण से पता चलता है, विकल्प छोड़ने से चार अलग-अलग परिणाम मिलते हैं (ए, बी, सी, और डी लेबल) बनाम सभी चार इनपुट से एकल परिणाम जब आप उपयोग करते हैं RemoveEmptyEntries
:
बेशक, अगर आपको विकल्पों का उपयोग करना पसंद नहीं है, तो बस रेगेक्स विकल्प का उपयोग करें :-)
Regex.Split(myStr, @"\s+").Where(s => s != string.Empty)