Cá nhân tôi đã thử TextInfo.ToTitleCase
phương pháp này, nhưng, tôi không hiểu tại sao nó không hoạt động khi tất cả các ký tự đều nằm trên.
Mặc dù tôi thích chức năng được cung cấp bởi Winston Smith , nhưng hãy để tôi cung cấp chức năng tôi hiện đang sử dụng:
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);
}
Chơi với một số chuỗi thử nghiệm :
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)));
Bố thí đầu ra :
|Converting String To Title Case In C#|
|C|
||
| |
||