2009-04-14 4 views

ответ

15

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

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

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

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

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

+0

Спасибо, я не знаю, почему я не нашел, что поиск – juan

+1

Это по-прежнему предполагает, что первая буква является правильным изменить. Не совсем безопасно для культуры. – Karl

+0

Первый пример вызовет исключение, если длина строки равна нулю. Должен добавить «if (string.IsNullOrEmpty (input)) return input;» на вершине. –

10

System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase

Это имеет то преимущество, что культура безопасной.

+0

После прочтения замечаний в документах MSDN, этот метод просто меняет первые буквы на верхний регистр, независимо от каких-либо реальных культурных данных. +1 для указания метода скрытой структуры, -1 для заданного метода, вводящего в заблуждение/нарушение. – ScottS

+1

Ну, оптимист скажет, что если вы сейчас используете его, он может функционировать так, как ожидалось в будущем. Во всяком случае, он делает именно то, что было запрошено, и встроен в структуру: P – Chris

0

Попробуйте это:

static public string UpperCaseFirstCharacter(this string text) { 
    return Regex.Replace(text, "^[a-z]", m => m.Value.ToUpper()); 
} 
Смежные вопросы