字符串中最后一个空格后的大写

时间:2016-03-13 18:23:37

标签: c# linq

我想要更改一个字符串,以便最后一个空格后的字符变为大写:

"a"        => "A"
"aa"       => "Aa"
"aa b"     => "aa B"
"aa bb cc" => "aa bb Cc"

是否有简单的Linq语法(或任何其他简写符号)?

1 个答案:

答案 0 :(得分:4)

对于正则表达式而言,这似乎比Linq更重要。

例如,你可以写一个这样的方法

string ConvertLastWordToUpperCase(string input)
{
    return Regex.Replace(input, @"\w+$", 
        m => CultureInfo.CurrentCulture.TextInfo.ToTitleCase(m.Value));
}

用你的测试字符串调用它

Console.WriteLine(ConvertLastWordToUpperCase("a"));
Console.WriteLine(ConvertLastWordToUpperCase("aa"));
Console.WriteLine(ConvertLastWordToUpperCase("aa b"));
Console.WriteLine(ConvertLastWordToUpperCase("aa bb cc"));

此时你也可以使用Linq这样的

执行转换
List<string> testCase = new List<string>()
{ "a", "aa", "aa b", "aa bb cc"};
var result = testCase.Select(x => ConvertLastWordToUpperCase(x));