2009-07-22 27 views

Trả lời

31
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ể)

+0

Điều đó có trong đó không? Ôi trơi. +1 –

+0

@Marc: Có phải 'ToTitleCase()' xử lý "Peter O'Toole" và "Mary Jones-Smith" đúng không? –

+0

@Grant: Peter cần một cái tên mới, Mary là tốt mặc dù. –

0
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(); 
    } 
+0

@TruthStands: Không tạo kết quả chính xác cho "Peter O'Toole" và "Mary Smith-Jones". –

+0

Đúng, nhưng sẽ không khó để khắc phục điều đó. – TruthStands

0

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.

Các vấn đề liên quan