Is there a CapitalizeFirstLetter method?
有什么方法可以做到吗?可以用扩展方法来完成吗?
我想实现这个目标:
1 2 | string s ="foo".CapitalizeFirstLetter(); // s is now"Foo" |
一种简单的扩展方法,将字符串的第一个字母大写。正如卡尔所指出的,这假设第一个字母是正确的,因此不是完全安全的文化。
1 2 3 4 5 6 7 8 | public static string CapitalizeFirstLetter(this String input) { if (string.IsNullOrEmpty(input)) return input; return input.Substring(0, 1).ToUpper(CultureInfo.CurrentCulture) + input.Substring(1, input.Length - 1); } |
您还可以使用System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleBase。函数将每个单词的第一个字符转换为大写。因此,如果输入字符串是
1 2 3 4 5 6 7 | public static string CapitalizeFirstLetter(this String input) { if (string.IsNullOrEmpty(input)) return input; return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input); } |
号
有关详细信息,请参阅此问题。
system.globalization.cultureinfo.currentechulture.textinfo.toitlecase
它具有文化安全的优势。
试试这个:
1 2 3 | static public string UpperCaseFirstCharacter(this string text) { return Regex.Replace(text,"^[a-z]", m => m.Value.ToUpper()); } |