2010-11-02 10 views
10

संभावित डुप्लिकेट:
Split a PascalCase string into separate words
is there a elegant way to parse a word and add spaces before capital lettersविभाजन अपरकेस साथ एक स्ट्रिंग

वहाँ इस स्ट्रिंग "TopLeft" "शीर्ष" और "वाम" विभाजित करने के लिए एक आसान तरीका है

+5

डुप्लीकेट प्रश्न http://stackoverflow.com/q/3216085/28736 – chilltemp

उत्तर

13

यदि आप इसे गतिशील चाहते हैं, तो हर बार जब आप ऊपरी केस अक्षर को अलग करते हैं तो इसका अर्थ यह नहीं होता है, मैं नहीं करता मान लीजिए कि यह बनाया गया है, लेकिन गलत हो सकता है; एक विस्तार विधि लिखना काफी आसान है।

string output = ""; 

foreach (char letter in str) 
{ 
    if (Char.IsUpper(letter) && output.Length > 0) 
    output += " " + letter; 
    else 
    output += letter; 
} 
+1

अच्छा। और मैं इसके लिए स्ट्रिंग के बजाय स्ट्रिंगबिल्डर का उपयोग कर थोड़ा सा सजा दूंगा। –

0
 string s = "TopLeft"; 
     List<int> splits = new List<int>(); 
     for(int i=0; i<s.Length;i++) 
      if(char.IsUpper(s[i])) 
       splits.Add(i); 

     int splitstart = 0; 
     foreach (int split in splits) 
     { 
      s.Substring(splitstart, split); 
      splitstart = split; 
     } 
संबंधित मुद्दे