关于c#:是否有CapitalizeFirstLetter方法?

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。函数将每个单词的第一个字符转换为大写。因此,如果输入字符串是have fun,结果将是have fun

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());
}