.net TextInfo.ToTitleCase无法按预期方式对所有大写字符串工作

epggiuax  于 2023-03-24  发布在  .NET
关注(0)|答案(3)|浏览(61)

我尝试使用TextInfo.ToTitleCase将一些名称转换为正确的大小写。它可以很好地处理小写和混合大小写的字符串,但对于所有字符都是大写的字符串,它将按原样返回输入字符串。
MSDN文档中没有提到这种行为,有什么见解吗?

7uhlpewt

7uhlpewt1#

来自MSDN文档:
注解通常,标题大小写转换将单词的第一个字符转换为大写,其余字符转换为小写。但是,此方法目前没有提供正确的大小写转换完全大写的单词,例如首字母缩写。下表显示了该方法呈现几个字符串的方式。
所以这是预期的行为。如果字符串都是大写的话,你可以先小写,然后对它运行ToTitleCase。

e0bqpujr

e0bqpujr2#

我怀疑这是因为所有大写的单词都应该是缩写,比如USA。
例如,你不会希望“地震袭击美国”被改为“地震袭击美国”,你会吗?

nnsrf1az

nnsrf1az3#

MSDN文档说:
通常,标题大小写转换将单词的第一个字符转换为大写,其余字符转换为小写。但是,完全大写的单词(如首字母缩略词)不会被转换。
所以它按预期工作。
例如:

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

相关问题