2009-04-14 16 views

Antwort

15

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.

+0

Danke, ich weiß nicht, warum ich es nicht finden – juan

+1

Suche Dies setzt voraus, nach wie vor, dass der erste Buchstabe der richtige ist zu ändern. Noch nicht perfekt kultursicher. – Karl

+0

erstes Beispiel wird eine Ausnahme auslösen, wenn die Stringlänge Null ist. Sollte hinzufügen "if (string.IsNullOrEmpty (input)) return input;" oben. –

10
+0

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

+1

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

0

Try this:

static public string UpperCaseFirstCharacter(this string text) { 
    return Regex.Replace(text, "^[a-z]", m => m.Value.ToUpper()); 
}