2011-01-06 9 views

risposta

7

Quello che stai descrivendo è talvolta chiamato ProperCase, o in caso C#, TitleCase. Potrebbe sembrare eccessivo, ma per quanto ne so ci vogliono alcune informazioni di localizzazione 'culturale'. Fortunatamente puoi semplicemente utilizzare quello attualmente in uso.

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

String newString = textInfo.ToTitleCase(oldString); 

Naturalmente, in pratica, probabilmente si vorrà per mettere tutto insieme come Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase, ma non sarebbe male per vedere che cosa significa tutta quella merda.

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

10

Prova questo.

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

Non userei 'ToLower'. 'ToTitleCase' è sufficiente. – leppie

+0

Thx..Aggiornato il post ... – Chandu

+0

+1, ma con una nota che in inglese (e in altre lingue), rendendo la prima lettera di ogni parola maiuscola non è "linguisticamente corretta" come [articolo MSDN] (http: //msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx) sottolinea. Quindi questo metodo, anche se è chiamato 'ToTitleCase', in realtà non capitalizza la stringa in base alle [regole del caso del titolo] (http://en.wikipedia.org/wiki/Letter_case#Choice_of_case_in_text). –

0

provare a utilizzare il codice qui sotto

Console.WriteLine(System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(str)); 
Problemi correlati