tôi muốn chuyển đổi:chuỗi chuyển đổi, nhân vật đầu tiên trên của mỗi từ
HECHT, WILLIAM
để
Hecht, William
trong C#.
bất kỳ cách nào thanh lịch để thực hiện việc này?
tôi muốn chuyển đổi:chuỗi chuyển đổi, nhân vật đầu tiên trên của mỗi từ
HECHT, WILLIAM
để
Hecht, William
trong C#.
bất kỳ cách nào thanh lịch để thực hiện việc này?
string name = "HECHT, WILLIAM";
string s = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(name.ToLower());
(lưu ý nó chỉ hoạt động thấp-to-thượng, vì thế bắt đầu thấp hơn hợp cụ thể)
public static string CamelCase(this string s)
{
if (String.IsNullOrEmpty(s))
s = "";
string phrase = "";
string[] words = s.Split(' ');
foreach (string word in words)
{
if (word.Length > 1)
phrase += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower() + " ";
else
phrase += word.ToUpper() + " ";
}
return phrase.Trim();
}
@TruthStands: Không tạo kết quả chính xác cho "Peter O'Toole" và "Mary Smith-Jones". –
Đúng, nhưng sẽ không khó để khắc phục điều đó. – TruthStands
Tôi đã bỏ phiếu câu trả lời của Marc lên, nhưng điều này cũng sẽ làm việc:
string s = Microsoft.VisualBasic.Strings.StrConv("HECHT, WILLIAM", VbStrConv.ProperCase,0);
Bạn sẽ cần phải thêm các tham chiếu thích hợp, nhưng tôi khá chắc chắn nó hoạt động trên tất cả các đầu vào phía trên.
Tôi chỉ muốn bao gồm một câu trả lời mà chỉ ra rằng mặc dù điều này có vẻ đơn giản về mặt lý thuyết, trên thực tế đúng tận tên của tất cả mọi người có thể rất phức tạp:
Dù sao, chỉ cần một cái gì đó để suy nghĩ về.
Điều đó có trong đó không? Ôi trơi. +1 –
@Marc: Có phải 'ToTitleCase()' xử lý "Peter O'Toole" và "Mary Jones-Smith" đúng không? –
@Grant: Peter cần một cái tên mới, Mary là tốt mặc dù. –