Существует ли метод CapitalizeFirstLetter?

Существует ли метод, чтобы сделать это? Это могло быть сделано с дополнительным методом?

Я хочу достигнуть этого:

string s = "foo".CapitalizeFirstLetter();
// s is now "Foo"
8
задан juan 14 April 2009 в 05:38
поделиться

2 ответа

Простой метод расширения, который будет использовать заглавную букву первой строки. Как указал Карл, это предполагает, что первая буква является правильной для изменения и, следовательно, не является абсолютно безопасной для культуры.

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.ToTitleCase . Функция преобразует первый символ каждого слова в верхний регистр. Поэтому, если ваша входная строка , получайте удовольствие , результат будет , получайте удовольствие .

public static string CapitalizeFirstLetter(this String input)
{
     if (string.IsNullOrEmpty(input)) 
         return input;

     return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input);
}

См. этот вопрос для получения дополнительной информации.

18
ответ дан 3 November 2019 в 14:03
поделиться

System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase

Преимущество состоит в том, что она безопасна для культуры.

10
ответ дан 3 November 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: