可能重复:
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”
答案 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;
}