从字符串中获取大写字母的索引

本文关键字:索引 大写字母 获取 字符串 | 更新日期: 2023-09-27 18:05:13

可能重复:
一种算法;spacify";CamelCased字符串

我有一个这样的字符串:MyUnsolvedProblem

我想修改字符串如下:My Unsolved Problem

我该怎么做?我尝试过使用Regex,但没有成功!

从字符串中获取大写字母的索引

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();
resultString = Regex.Replace("MyUnsolvedProblem", "([a-z])([A-Z])", "$1 $2");

基于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);

如果有帮助的话,我可以提供一个如何在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());

我确信也有一种方法可以用正则表达式来实现这一点,但这是一种选择。