Gibt es eine Methode, das zu tun? Könnte es mit einer Erweiterungsmethode gemacht werden?Gibt es eine CapitalizeFirstLetter-Methode?
Ich möchte, dies erreichen:
string s = "foo".CapitalizeFirstLetter();
// s is now "Foo"
Gibt es eine Methode, das zu tun? Könnte es mit einer Erweiterungsmethode gemacht werden?Gibt es eine CapitalizeFirstLetter-Methode?
Ich möchte, dies erreichen:
string s = "foo".CapitalizeFirstLetter();
// s is now "Foo"
Eine einfache Erweiterung Methode, die die ersten Buchstaben eines Strings profitieren wird. Wie Karl betonte, geht dies davon aus, dass der erste Buchstabe der richtige ist, der geändert werden muss und daher nicht vollkommen kultursicher ist.
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);
}
Sie können auch System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase verwenden. Die Funktion wandelt das erste Zeichen von jedes Wort in Großbuchstaben um. Wenn also Ihre Eingabezeichenfolge have fun
lautet, lautet das Ergebnis Have Fun
.
public static string CapitalizeFirstLetter(this String input)
{
if (string.IsNullOrEmpty(input))
return input;
return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input);
}
Weitere Informationen finden Sie unter this question.
System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase
Es hat den Vorteil, Kultur sicher zu sein.
Nach dem Lesen der Anmerkungen in den MSDN-Dokumenten stellt sich heraus, dass diese Methode nur die ersten Großbuchstaben ändert, ungeachtet irgendwelcher kultureller Details. +1 für den Hinweis auf obskure Framework-Methode, -1 für die angegebene Methode ist irreführend/fehlerhaft. – ScottS
Nun würde der Optimist sagen, dass, wenn Sie es jetzt verwenden, es tatsächlich funktionieren könnte, wie erwartet in der Zukunft. Auf jeden Fall macht es genau das, was angefordert wurde, und ist in den Rahmen eingebaut: P – Chris
Try this:
static public string UpperCaseFirstCharacter(this string text) {
return Regex.Replace(text, "^[a-z]", m => m.Value.ToUpper());
}
Danke, ich weiß nicht, warum ich es nicht finden – juan
Suche Dies setzt voraus, nach wie vor, dass der erste Buchstabe der richtige ist zu ändern. Noch nicht perfekt kultursicher. – Karl
erstes Beispiel wird eine Ausnahme auslösen, wenn die Stringlänge Null ist. Sollte hinzufügen "if (string.IsNullOrEmpty (input)) return input;" oben. –