2009-07-22 5 views

답변

31
string name = "HECHT, WILLIAM"; 
string s = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(name.ToLower()); 

나는 마크의 대답을 선정

+0

그 안에 있습니까? 어머. +1 –

+0

@Marc : ToTitleCase()는 "Peter O'Toole"과 "Mary Jones-Smith"를 제대로 처리합니까? –

+0

@ 그랜트 : 피터는 새로운 이름이 필요합니다. 메리는 괜찮습니다. –

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 : "Peter O'Toole"및 "Mary Smith-Jones"에 대한 올바른 결과를 생성하지 않습니다. –

+0

사실, 그러나 그것을 고치는 것은 어렵지 않을 것입니다. – TruthStands

0

(그것은 단지 낮은 - 투 - 상단 작동주의는, 따라서의 경우 낮은 시작),하지만이 또한 작동합니다

string s = Microsoft.VisualBasic.Strings.StrConv("HECHT, WILLIAM", VbStrConv.ProperCase,0); 

적절한 참조를 추가해야하지만 모든 입력에 대해 작동하는지는 확실합니다.

관련 문제