ich möchte konvertieren:String-Konvertierung, erstes Zeichen oberen jedes Wortes
HECHT, WILLIAM
zu
Hecht, William
in C#.
irgendwelche eleganten Möglichkeiten, dies zu tun?
ich möchte konvertieren:String-Konvertierung, erstes Zeichen oberen jedes Wortes
HECHT, WILLIAM
zu
Hecht, William
in C#.
irgendwelche eleganten Möglichkeiten, dies zu tun?
string name = "HECHT, WILLIAM";
string s = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(name.ToLower());
(beachten Sie, es funktioniert nur geringer bis oberen, beginnend damit Klein)
public static string CamelCase(this string s)
{
if (String.IsNullOrEmpty(s))
s = "";
string phrase = "";
string[] words = s.Split(' ');
foreach (string word in words)
{
if (word.Length > 1)
phrase += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower() + " ";
else
phrase += word.ToUpper() + " ";
}
return phrase.Trim();
}
@TruthStands: Erzeugt nicht die korrekten Ergebnisse für "Peter O'Toole" und "Mary Smith-Jones". –
Stimmt, aber es wäre nicht schwer, das zu beheben. – TruthStands
I Marcs Antwort gestimmt, aber dies wird auch funktionieren:
string s = Microsoft.VisualBasic.Strings.StrConv("HECHT, WILLIAM", VbStrConv.ProperCase,0);
Sie müssen die entsprechenden Referenzen hinzufügen, aber ich bin mir ziemlich sicher, dass es auf allen oberen Eingängen funktioniert.
Ich möchte nur eine Antwort enthalten, die darauf hinweist, dass, obwohl dies in der Theorie einfach scheint, kann die Namen aller in der Praxis ordnungsgemäß Kapitalisierung sehr kompliziert sein:
Wie auch immer, etwas nur zu denken.
Ist das Ding drin? Oh mein. +1 –
@Marc: Behandelt 'ToTitleCase()' "Peter O'Toole" und "Mary Jones-Smith" richtig? –
@Grant: Peter braucht einen neuen Namen, Mary ist in Ordnung. –