Есть ли способ сделать это? Это можно сделать с помощью метода расширения?Есть ли метод CapitalizeFirstLetter?
Я хочу, чтобы достичь этого:
string s = "foo".CapitalizeFirstLetter();
// s is now "Foo"
Есть ли способ сделать это? Это можно сделать с помощью метода расширения?Есть ли метод CapitalizeFirstLetter?
Я хочу, чтобы достичь этого:
string s = "foo".CapitalizeFirstLetter();
// s is now "Foo"
Простой метод расширения, который будет капитализировать первую букву строки. Как отметил Карл, это предполагает, что первое письмо является правильным для изменения и, следовательно, не совсем безопасно для культуры.
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 для получения дополнительной информации.
System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase
Это имеет то преимущество, что культура безопасной.
После прочтения замечаний в документах MSDN, этот метод просто меняет первые буквы на верхний регистр, независимо от каких-либо реальных культурных данных. +1 для указания метода скрытой структуры, -1 для заданного метода, вводящего в заблуждение/нарушение. – ScottS
Ну, оптимист скажет, что если вы сейчас используете его, он может функционировать так, как ожидалось в будущем. Во всяком случае, он делает именно то, что было запрошено, и встроен в структуру: P – Chris
Попробуйте это:
static public string UpperCaseFirstCharacter(this string text) {
return Regex.Replace(text, "^[a-z]", m => m.Value.ToUpper());
}
Спасибо, я не знаю, почему я не нашел, что поиск – juan
Это по-прежнему предполагает, что первая буква является правильным изменить. Не совсем безопасно для культуры. – Karl
Первый пример вызовет исключение, если длина строки равна нулю. Должен добавить «if (string.IsNullOrEmpty (input)) return input;» на вершине. –