有没有办法将没有空格的字符串转换为正确的句子?例如“WhoAmI”需要转换为“Who Am I”
问问题
508 次
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 回答