2013-02-10 15 views
8

मुझे स्ट्रिंग को विभाजित करने में समस्या हो रही है।विभिन्न वर्णों के बीच स्ट्रिंग को कैसे विभाजित करें

मैं केवल 2 अलग-अलग वर्णों के बीच शब्दों को विभाजित करना चाहता हूं। मेरे पास यह पाठ है:

string text = "the dog :is very# cute" ; 

मैं केवल शब्दों को कैसे पकड़ सकता हूं: (: #) वर्णों का उपयोग करके "बहुत" है।

उत्तर

9

आप params char[] साथ String.Split() विधि का उपयोग कर सकते हैं;

एक स्ट्रिंग सरणी देता है जिसमें इस उदाहरण में सबस्ट्रिंग शामिल है जो निर्दिष्ट यूनिकोड वर्ण सरणी के तत्वों द्वारा सीमित हैं।

string text = "the dog :is very# cute"; 
string str = text.Split(':', '#')[1]; // [1] means it selects second part of your what you split parts of your string. (Zero based) 
Console.WriteLine(str); 

यहाँ एक DEMO है।

आप इसे किसी भी संख्या का उपयोग कर सकते हैं।

+2

नोट: यह भी, वर्ण है कि प्रश्न में निर्दिष्ट क्रम में नहीं हैं के बीच तार पकड़ेगा उदाहरण के लिए '" 'में यह # is' # एक है: परीक्षण # । "' – Guffa

2
Regex regex = new Regex(":(.+?)#"); 
Console.WriteLine(regex.Match("the dog :is very# cute").Groups[1].Value); 
3

string.Split की overloads से एक एक params char[] लेता है - आप पर विभाजित करने के लिए वर्णों की संख्या का उपयोग कर सकते हैं:

string isVery = text.Split(':', '#')[1]; 

ध्यान दें कि मुझे लगता है कि अधिभार उपयोग कर रहा हूँ और दूसरा आइटम ले रहा हूँ लौटा सरणी से।

हालांकि, @Guffa ने his answer में नोट किया है, जो आप कर रहे हैं वह वास्तव में एक विभाजन नहीं है, लेकिन एक विशिष्ट उप स्ट्रिंग निकालने वाला है, इसलिए उसके दृष्टिकोण का उपयोग करना बेहतर हो सकता है।

10

यह वास्तव में एक विभाजन नहीं है, इसलिए Split का उपयोग करके तारों का एक समूह बन जाएगा जो आप उपयोग नहीं करना चाहते हैं। सीधे शब्दों में पात्रों में से सूचकांक मिलता है, और का उपयोग SubString: इस कोड

var varable = text.Split(':', '#')[1]; 
4

उपयोग इस मदद करता है:

[Test] 
    public void split() 
    { 
     string text = "the dog :is very# cute" ; 

     // how can i grab only the words:"is very" using the (: #) chars. 
     var actual = text.Split(new [] {':', '#'}); 

     Assert.AreEqual("is very", actual[1]); 
    } 
2

int startIndex = text.IndexOf(':'); 
int endIndex = test.IndexOf('#', startIndex); 
string very = text.SubString(startIndex, endIndex - startIndex - 1); 
2

उपयोग String.IndexOf और String.Substring

string text = "the dog :is very# cute" ; 
int colon = text.IndexOf(':') + 1; 
int hash = text.IndexOf('#', colon); 
string result = text.Substring(colon , hash - colon); 
संबंधित मुद्दे

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