我正在寻找解决问题的方法,这就是我需要的,只是一个例子 我有短语
"ProgrammingIsIntresting"
我需要它来拆分并创建一个像“Programming Is Intresting”这样的字符串。
CultureInfo.CurrentCulture.TextInfo.ToTitleCase在这里工作,但我怎样才能在这里放置空间文字。
这是我所拥有的,似乎我被困在这里。
var UpperChars = mystring.Where(c => Char.IsUpper(c));
foreach (var ch in UpperChars)
{
if (mystring.IndexOf(ch) == 0)
continue;
}
答案 0 :(得分:3)
试试这个:
return Regex.Replace(input, "([A-Z])"," $1", RegexOptions.Compiled).Trim();
来自http://weblogs.asp.net/jgalloway/archive/2005/09/27/426087.aspx
或:
var splitted = Regex.Replace("ProgrammingIsIntresting",
@"(\B[A-Z]+?(?=[A-Z][^A-Z])|\B[A-Z]+?(?=[^A-Z]))", " $1");
第二个将处理SQLIsCool
示例
答案 1 :(得分:1)
string myString = "ProgrammingIsIntresting";
String newString = "";
char intermediate;
for (int i = 0; i < myString.Length; i++)
{
intermediate = myString[i];
if(char.IsUpper(intermediate) && (i != 0))
newString = newString + " " + intermediate.ToString();
else
newString = newString + intermediate.ToString();
}
Console.WriteLine(newString);
答案 2 :(得分:0)
另一种可能的方法可能就是我刚试过的方法:
string a = "IAmVahid";
List<char> b= new List<char>();
int j = 0;
for (int i = 0; i < a.Length; i++)
{
if (char.IsUpper(a[i]))
{
b.Add(' ');
}
b.Add(a[i]);
}
ouputTxt.Text = new String(b.ToArray()) ;