Подтвердить что ты не робот

TextInfo.ToTitleCase не работает должным образом для ВСЕХ строк CAPS

Я пытался использовать TextInfo.ToTitleCase для преобразования некоторых имен в правильный случай. он отлично работает для строк в нижнем и смешанном случае, но для строк со всеми символами в верхнем регистре возвращает строку ввода как есть. Ничто об этом поведении не упоминается в документации MSDN, какие-либо идеи?

4b9b3361

Ответ 1

От MSDN docs:

Замечания Как правило, заголовочный корпус преобразует первый символ слова в верхний регистр, а остальные символы - в нижний регистр. Однако этот метод в настоящее время не обеспечивает надлежащую оболочку для преобразования слова, которое является полностью прописным, например, акроним. В следующей таблице показано, как метод отображает несколько строк.

поэтому ожидаемое поведение. Сначала вы можете ввести строку в верхний регистр, если она заглавна, а затем запустите ToTitleCase.

Ответ 2

Я подозреваю, что слова во всех столицах должны быть аббревиатурами, такими как США.

Например, вы не ожидаете, что "Землетрясение ударит по США" будет изменено на "Earthquake Hits Usa", не так ли?

Ответ 3

В документации MSDN говорится:

Как правило, оболочка заголовков преобразует первый символ слова в верхний регистр, а остальные символы - в нижний регистр. Однако слово, которое является полностью прописным, например акроним, не преобразуется.

Таким образом, он работает по назначению. Попробуйте TextInfo.ToTitleCase(TextInfo.ToLowerCase("STRINGINCAPS")

как:

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