【发布时间】:2014-04-02 10:07:08
【问题描述】:
我需要将字符串中每个单词的第一个字母大写,如果单词的长度为 2,则还要将字符串中的 specific 单词大写。我可以在<list> 或Array 中指定这两个词。
上一个问题和解决方案provided here 将每个包含两个字母的单词大写。但是,如果某人的名字只有两个字母,这就会成为一个问题。示例:Ja Rule 或 Robert Mo。我需要大写以下内容:NW SW MD,如果它们出现在字符串中。
以下代码将每个单词的首字母和包含两个字符的单词的两个字母大写。同样,这成为两个字母名称的问题:
var input = "dr. david BOWIE md";
TextInfo tCase = new CultureInfo("en-US", false).TextInfo;
var result = tCase.ToTitleCase(input.ToLower());
result = string.Join(" ", result.Split(' ')
.Select(i => i.Length == 2 ? i.ToUpperInvariant() : i));
输出:
Dr. David Bowie MD
问题:
Jason De,也变成Jason DE
谢谢。
【问题讨论】:
-
我们可以假设每个人都有两个名字吗?
-
是的,但我指的是两个字母的名字。所以
Robert Jah不受影响,但Robert JA受到影响。
标签: c#