我想将我的字符串格式化为大写字母格式(即Capitalize First Char Of Words)。
For Example -
If Input is: "NEW YORK CITY"
then the desired output is: "New York City"
*我的字符串最多有3个单词。
之后,谷歌搜索它,我发现了几种方法来实现这种方法,但我无法得到哪种方法最好。
方法1:
string City = "NEW YORK CITY";
City = City.ToLower();
string Capatilize_City = "";
Capatilize_City = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(City);
方法2:
string City = "NEW YORK CITY";
string[] lstWord = City.ToLower().Split(' ');
string Capatilize_City = "";
foreach (string s in lstWord)
{
string z = s.Substring(0, 1).ToUpper() + s.Substring(1, s.Length - 1);
Capatilize_City += " " + z;
}
Capatilize_City = Capatilize_City.Trim();
哪种代码最适合使用(性能和速度副)?
答案 0 :(得分:5)
你应该考虑代码大小,可读性,可理解性,可维护性,所以明确的赢家是......
<小时/> 的修改
所以我建议
Capatilize_City =
System.Globalization.CultureInfo.CurrentCulture.TextInfo
.ToTitleCase(City.ToLower());
答案 1 :(得分:1)
这一个班轮也有效:
string Capatilize_City =
String.Join(
" ",
City
.ToLower()
.Split(' ')
.Select(s =>
s.Substring(0, 1).ToUpper()
+ s.Substring(1, s.Length - 1)));
除非你在一个巨大的字符串上执行此操作,否则对任何方法都不应该是一个问题。
我建议你自己做一个名为.ToTitleCase()
的字符串的扩展方法并使用它 - 然后如果你需要更改实现,你可以在代码中的一个位置完成它。