2013-02-19 121 views
0

我想在數字前放一個空格。在PascalCase字符串中的數字前插入空格

說例如我有這個PascalCase字符串:「SupportContactAddressLine1」。

我希望它顯示「技術支持聯繫地址1號線」

我已經試過這樣:

var s = PascalCase; 

for (var i = 1; i < s.Length; i++) 
{ 
    if (char.IsLower(s[i - 1]) && char.IsUpper(s[i])) 
    { 
    s = s.Insert(i, " "); 
    } 
} 

但結果是:「支持聯繫地址1號線」

回答

2

檢查是否存在數字太:

if (Char.IsLower(s[i - 1]) && (Char.IsUpper(s[i]) || Char.IsDigit(s[i]))) 
0

一個數字不是一個字母,因此沒有區別在小寫和大寫之間,並且char.IsUpper('1')返回false

您應該包括使用char.IsDigit(...)來檢查數字。

0

這會幫助你:

var res = Regex.Replace("SupportContactAddressLine100", "([A-Z])|([0-9]+)", " $1$2");