用大写分割字符串

时间:2010-11-02 15:22:25

标签: c# .net

  

可能重复:
  Split a PascalCase string into separate words
  is there a elegant way to parse a word and add spaces before capital letters

是否有一种简单的方法来分割这个字符串 “TopLeft”到“Top”和“Left”

2 个答案:

答案 0 :(得分: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;
        }