2011-01-06 7 views

Odpowiedz

7

To, co opisujesz, jest czasami nazywane ProperCase lub w przypadku C#, TitleCase. Może się to wydawać przesadą, ale z tego, co wiem, wymaga to trochę "kulturalnej" informacji o lokalizacji. Na szczęście możesz po prostu wybrać ten, który jest w użyciu.

CultureInfo c = Thread.CurrentThread.CurrentCulture; 
TextInfo textInfo = c.TextInfo; 

String newString = textInfo.ToTitleCase(oldString); 

Oczywiście w praktyce prawdopodobnie będziesz chciał umieścić to wszystko razem jak Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase, ale nie zaszkodzi sprawdzić, co oznacza, że ​​wszystko bzdura.

http://support.microsoft.com/kb/312890

10

Spróbuj tego.

String s = "this is example"; 
Console.WriteLine(Thread.CurrentCulture.TextInfo.ToTitleCase(s)); 
+0

Nie użyłbym "ToLower". 'ToTitleCase' jest wystarczające. – leppie

+0

Thx..Apdated the post ... – Chandu

+0

+1, ale z notatką, że w języku angielskim (i innych językach), pierwsza litera każdego słowa nie jest "lingwistycznie poprawna" jako [artykuł MSDN] (http: //msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx) zwraca uwagę. Tak więc ta metoda, mimo że nazywa się to "ToTitleCase", w rzeczywistości nie oznacza wielkiej litery łańcucha zgodnie z [zasadami tytułu tytułu] (http://en.wikipedia.org/wiki/Letter_case#Choice_of_case_in_text). –

0

Spróbuj użyć poniższy kod

Console.WriteLine(System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(str)); 
Powiązane problemy