programing

텍스트 정보.ToTitleCase가 모든 CAPS 문자열에 대해 예상대로 작동하지 않습니다.

linuxpc 2023. 5. 31. 15:22
반응형

텍스트 정보.ToTitleCase가 모든 CAPS 문자열에 대해 예상대로 작동하지 않습니다.

제가 사용하려고 했던 것입니다.TextInfo.ToTitleCase일부 이름을 올바른 대소문자로 변환합니다.소문자와 혼합 문자의 문자열에서는 잘 작동하지만 대문자의 모든 문자가 포함된 문자열의 경우 입력 문자열을 그대로 반환합니다.
MSDN 문서에는 이 동작에 대해 언급된 것이 없습니다. 통찰력이 있습니까?

MSDN 문서에서:

비고 일반적으로 제목 케이싱은 단어의 첫 번째 문자를 대문자로 변환하고 나머지 문자는 소문자로 변환합니다.그러나방법은 현재 머리글자어와 같이 완전히 대문자인 단어를 변환하기 위한 적절한 케이스를 제공하지 않습니다.다음 표에서는 메소드가 여러 문자열을 렌더링하는 방법을 보여 줍니다.

예상되는 행동입니다.문자열이 모두 대문자인 경우 먼저 소문자로 표시한 다음 ToTitleCase를 실행할 수 있습니다.

모든 대문자의 단어가 USA와 같은 약자로 예상되기 때문인 것 같습니다.

예를 들어, "Earthquake hits USA"가 "Earthquake Hits Usa"로 변경될 것이라고 예상하지 않으시겠습니까?

MSDN 설명서에는 다음과 같이 나와 있습니다.

일반적으로 제목 케이싱은 단어의 첫 번째 문자를 대문자로 변환하고 나머지 문자는 소문자로 변환합니다.그러나 머리글자와 같이 완전히 대문자인 단어는 변환되지 않습니다.

그래서 그것은 의도한 대로 작동합니다.해라TextInfo.ToTitleCase(TextInfo.ToLowerCase("STRINGINCAPS"))

예:

string TitleCaseString;
TextInfo myTI = new CultureInfo("en-US",false).TextInfo;
TitleCaseString = myTI.ToTitleCase(myTI.ToLowerCase("STRINGINCAPS"));

언급URL : https://stackoverflow.com/questions/2697203/textinfo-totitlecase-does-not-work-as-expected-for-all-caps-strings

반응형