2010-05-16 7 views
4

여기서 내가 뭘 잘못하고 있니? 나는 사용자 이름을 출력으로 propercase로 표시하고 싶지만 그것을 이해할 수는 없다.올바른 케이스 제목 케이스 질문

string proper = this.xTripNameTextBox.Text; 
CultureInfo properCase = System.Threading.Thread.CurrentThread.CurrentCulture; 
TextInfo currentInfo = properCase.TextInfo; 
proper = currentInfo.ToTitleCase(proper); 

this.xTripOutputLabel.Text = proper + Environment.NewLine + "The total gallons you would use: " + Output.ToString("0") + Environment.NewLine + "Total amount it will cost you: " + Coutput.ToString("C") + Environment.NewLine +" Your customer number is " + rnd1.Next(1, 1000).ToString(); 
+0

당신이 얻고있는 것과 기대하는 것을 우리에게 보여줄 수 있습니까? –

+0

사용자가 "John DOE"를 입력하면 "John Doe"라는 문자를 대문자 "John Doe"로 변환해야합니다. 그러나 내가 잘못한 것을 알지 못합니다. –

+0

문제는 ToLower를 사용하여 먼저 문자열을 변환합니다. 소문자로 설정하면 제목 케이스가 작동합니다. –

답변

8

내가 테스트했습니다.

MSDN 설명서는 대문자 인 약어 (예 : 두문자어)는 변환되지 않으며 게시물에 제공된 샘플 코드는이를 뒷받침한다고 말합니다.

+0

훌륭한 감사합니다. –

+0

제발보세요 @ http://stackoverflow.com/questions/4426439/function-to-normalize-string-case-according-to-specified-or-current-cultureinfo – Shimmy

3

사양에 따라있어 그 항목의 문서에서 인용 : 그러나,이 방법은 현재 완전히 대문자 단어를 변환 할 적절한 케이스를 제공하지 않습니다

http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx

테스트를 거치지 않았다면 먼저 LowerCase으로 만들고 나서 TitleCase으로 만들 수 있다고 생각합니다. ToTitleCase를 호출하기 전에 소문자 할 수있는 문자열을 변경 -

string proper = "TEST STRING"; 
CultureInfo properCase = System.Threading.Thread.CurrentThread.CurrentCulture; 
TextInfo currentInfo = properCase.TextInfo; 
proper = currentInfo.ToTitleCase(currentInfo.ToLower(proper)); 
// proper = "Test String" 

그래서 : 작동에 모두 대문자 단어를 다음

+0

감사합니다. 시도해보십시오. 소문자 다음에 titleCase –

+0

+1 설명서를 통해 솔루션을 백업하십시오. – Heinzi