2011-08-09 70 views

回答

10
var result = Regex.Replace("MyUnsolvedProblem", @"(\p{Lu})", " $1").TrimStart(); 

沒有正則表達式:

var s = "MyUnsolvedProblem"; 
var result = string.Concat(s.Select(c => char.IsUpper(c) ? " " + c.ToString() : c.ToString())) 
    .TrimStart(); 
5
resultString = Regex.Replace("MyUnsolvedProblem", "([a-z])([A-Z])", "$1 $2"); 
1

我可以提供的如何做到這一點在C#中的建議是否有幫助:

String PreString = "getAllItemsByID"; 

System.Text.StringBuilder SB = new System.Text.StringBuilder(); 

foreach (Char C in PreString) 
{ 
    if (Char.IsUpper(C)) 
     SB.Append(' '); 
    SB.Append(C); 
} 

Response.Write(SB.ToString()); 

我敢肯定,有也可以用正則表達式來實現,但這是一種選擇。

1

LINQ爲基礎的方法:

string data = "TestStringData"; 
var converted = data.Select(x => Char.IsUpper(x) ? String.Concat(" ", x) : x.ToString()); 
var singleString = converted.Aggregate((a, b) => a + b);