我有一个名为ProperCase的函数,它接受一个字符串,然后将每个单词中的第一个字母转换为大写.所以ProperCase("约翰史密斯")将返回"约翰史密斯".这是代码:
public string ProperCase(string input)
{
var retVal = string.Empty;
var words = input.Split(' ');
foreach (var word in words)
{
if (word.Length == 1)
{
retVal += word.ToUpper();
}
else if (word.Length > 1)
{
retVal += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower();
}
retVal += ' ';
}
if (retVal.Length > 0)
{
retVal = retVal.Substring(0, retVal.Length - 1);
}
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
这段代码工作得很好,但我很确定我能用LINQ和lambdas更优雅地完成它.有人可以告诉我怎么样?
将输入字符串拆分为单词,将每个单词转换为标题大小写,然后将转换后的单词重新加入:
TextInfo textInfo = new CultureInfo("en-US", false).TextInfo;
string result = string.Join(" ", input.Split(' ')
.Select(word => textInfo.ToTitleCase(word))
.ToArray());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |