Secara pribadi saya mencoba TextInfo.ToTitleCase
metode ini, tetapi, saya tidak mengerti mengapa itu tidak berhasil ketika semua karakter ditulis dengan huruf besar.
Meskipun saya menyukai fungsi util yang disediakan oleh Winston Smith , izinkan saya menyediakan fungsi yang saya gunakan saat ini:
public static String TitleCaseString(String s)
{
if (s == null) return s;
String[] words = s.Split(' ');
for (int i = 0; i < words.Length; i++)
{
if (words[i].Length == 0) continue;
Char firstChar = Char.ToUpper(words[i][0]);
String rest = "";
if (words[i].Length > 1)
{
rest = words[i].Substring(1).ToLower();
}
words[i] = firstChar + rest;
}
return String.Join(" ", words);
}
Bermain dengan beberapa senar tes :
String ts1 = "Converting string to title case in C#";
String ts2 = "C";
String ts3 = "";
String ts4 = " ";
String ts5 = null;
Console.Out.WriteLine(String.Format("|{0}|", TitleCaseString(ts1)));
Console.Out.WriteLine(String.Format("|{0}|", TitleCaseString(ts2)));
Console.Out.WriteLine(String.Format("|{0}|", TitleCaseString(ts3)));
Console.Out.WriteLine(String.Format("|{0}|", TitleCaseString(ts4)));
Console.Out.WriteLine(String.Format("|{0}|", TitleCaseString(ts5)));
Memberikan hasil :
|Converting String To Title Case In C#|
|C|
||
| |
||