我有一个这样的字符串:MyUnsolvedProblem
我想修改这样的字符串:My Unsolved Problem
我该怎么做?我尝试过使用正则表达式没有运气!
答案 0 :(得分:12)
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();
答案 1 :(得分:5)
resultString = Regex.Replace("MyUnsolvedProblem", "([a-z])([A-Z])", "$1 $2");
答案 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());
我确信有一种方法可以使用正则表达式,但这是一个选项。
答案 3 :(得分: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);