在PascalCase字符串中插入数字之前的空格

时间:2013-02-19 09:14:28

标签: c# string space

我想在数字前加一个空格。

比如说我有这个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, " ");
  }
 }

但结果是:“支持联系地址Line1”

3 个答案:

答案 0 :(得分:2)

检查一个数字:

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

答案 1 :(得分:0)

数字不是字母,因此小写和大写之间没有区别,char.IsUpper('1')返回false

您应该使用char.IsDigit(...)来检查数字。

答案 2 :(得分:0)

这可以帮到你:

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