C# 将字符串的一部分更新为标题大小写

C# 将字符串的一部分更新为标题大小写,c#,string,title-case,C#,String,Title Case,我有一个字符串序列,它的格式如下: 项目1:丰田:卡罗拉 项目1:Hoyota:协议 项目1:丰田:凯美瑞 正如您所看到的,字符串的中间部分的大小写不一致(对于Corolloa,它被列为toyota)。我需要对上述内容进行如下更改: 项目1:Toyota:Corolla 项目1:Hoyota:Accord 项目1:Toyota:凯美瑞 我想让字符串的中间部分成为标题大小写 我正在使用以下命令 static TextInfo textInfo = new CultureInfo( "en-

我有一个字符串序列,它的格式如下:

  • 项目1:丰田:卡罗拉
  • 项目1:Hoyota:协议
  • 项目1:丰田:凯美瑞
正如您所看到的,字符串的中间部分的大小写不一致(对于Corolloa,它被列为toyota)。我需要对上述内容进行如下更改:

  • 项目1:Toyota:Corolla
  • 项目1:Hoyota:Accord
  • 项目1:Toyota:凯美瑞
我想让字符串的中间部分成为标题大小写

我正在使用以下命令

static TextInfo textInfo = new CultureInfo( "en-US" ).TextInfo;

但TitleCase的问题是,如果字符串是大写的,它将不会更改为TitleCase。当字符串为大写时,我们知道如何处理大小写吗。

您可以使用
.ToTitleCase()

你可以用


正则表达式替代:

var result = Regex.Replace("Project1:toyota:Corolla", @"\b[a-z]", m => m.Value.ToUpper());

我认为你指的是适当的/标题案例或PascalCase(就你的例子而言,这两者都是相同的)。camelCase是指第一个字母是小写的。我编辑了你的问题以反映这一点。谢谢@notanautor。当字符串是大写时,你知道如何处理大小写吗?TextInfo总是以大写形式返回字符串。TextInfo.ToTitleCase(“Project1:TOYOTA:Corolla.ToLower())应该可以完成这个任务
textInfo.ToTitleCase("Project1:toyota:Corolla")
var result = Regex.Replace("Project1:toyota:Corolla", @"\b[a-z]", m => m.Value.ToUpper());