1

有没有办法将没有空格的字符串转换为正确的句子?例如“WhoAmI”需要转换为“Who Am I”

4

3 回答 3

8

如果您只是在谈论在每个大写字母之前插入一个空格,则正则表达式替换会这样做:

using System;
using System.Text.RegularExpressions;

class Test
{
    static void Main()
    {
        var input = "WhoAmI";
        var output = Regex.Replace(input, @"\p{Lu}", " $0").TrimStart();
        Console.WriteLine(output);
    }
}

但是,我怀疑会有重大的极端案例。请注意,上面使用\p{Lu}的不仅仅是[A-Z]处理非 ASCII 大写字母;A-Z如果您只需要处理 ASCII,您可能会发现更简单。TrimStart()调用是删除否则你会得到的前导空格。

于 2012-12-15T09:19:10.617 回答
0

您可以使用 LINQ

string words = "WhoAmI";
string sentence = String.Concat(words.Select(letter => Char.IsUpper(letter) ? " " + letter 
                                    : letter.ToString()))
                                    .TrimStart();
于 2012-12-17T14:33:12.503 回答
0

如果字符串中的每个单词都以大写字母开头,您可以将每个以大写字母开头的部分转换为空格分隔的字符串。

于 2012-12-15T09:19:38.730 回答