2012-03-25 7 views
6

Mögliche Duplizieren:
How to make a first letter capital in C#C# kapitalisieren Satz

Ich versuche, das erste Wort in einem Satz zu kapitalisieren das ist, was haben, aber es funktioniert nicht. Vielen Dank im Voraus für jede Hilfe.

char.ToUpper(sentence[0]) + sentence.Substring(1) 
+0

Sie meinen den ersten Buchstaben eines Satzes? –

+0

Gelöst - Ich löste es, indem Sie Folgendes tun. Ich brauchte es, um Satz [1] und Teilstring (2) für einige addieren Grund zu sein. Satz = Char.ToUpper (Satz [1]) + Satz.Substring (2); – amedeiros

+0

Vielleicht haben Sie zuerst 'sentence = sentence.Trim();' ausgeführt. Vor dem ersten Buchstaben hätte ein Leerzeichen stehen können. – fredsbend

Antwort

4

Es klingt wie du bist nur das erste Zeichen eines string Wert zu nutzen versuchen. Wenn dem so ist, dann ist Ihr Code in Ordnung, aber Sie müssen die neue Zeichenfolge zurück in den sentence Wert zuweisen.

sentence = char.ToUpper(sentence[0]) + sentence.Substring(1) 

A string in Net ist unveränderlich und somit die jeder Operation die string produziert einen neuen Wert ändert. Es wird nicht den ursprünglichen Wert an Ort und Stelle ändern. Um das Ergebnis der Änderung zu sehen, müssen Sie es einer Variablen zuweisen.

+0

Ich habe das versucht, aber es ist immer noch das gleiche Ergebnis. – amedeiros

+0

@ user1072481 wie benutzt man dann 'sätze'? Der obige Code sollte gut funktionieren, also muss es in der Verwendung des Ergebnisses sein – JaredPar

9

Die Lösung von JaredPar ist richtig, aber ich möchte Sie auch auf die Klasse TextInfo hinweisen. ToTitleCase() wird den ersten Buchstaben groß schreiben und den Rest in Kleinbuchstaben umwandeln.

 string s = "heLLo"; 
     var t = new CultureInfo("en-US", false).TextInfo; 
     s = t.ToTitleCase(s); //prints "Hello" 
+8

Sie können dies tun, ohne eine neue CultureInfo zu erstellen - 'CultureInfo.CurrentCulture.TextInfo.ToTitleCase (s)' – Blorgbeard

+3

Dies ist nicht der Fall. TextInfo.ToTitleCase() wandelt den ersten Buchstaben * jedes Wortes * in ein Großbuchstabe um, nicht nur den ersten Buchstaben der Zeichenkette (in diesem Fall den Satz), wonach die Frage gefragt wird. –

+0

siehe @Camille Sévigny Kommentar. – Zunair