我尝试使用TextInfo.ToTitleCase将一些名称转换为正确的大小写。它可以很好地处理小写和混合大小写的字符串,但对于所有字符都是大写的字符串,它将按原样返回输入字符串。MSDN文档中没有提到这种行为,有什么见解吗?
TextInfo.ToTitleCase
7uhlpewt1#
来自MSDN文档:注解通常,标题大小写转换将单词的第一个字符转换为大写,其余字符转换为小写。但是,此方法目前没有提供正确的大小写转换完全大写的单词,例如首字母缩写。下表显示了该方法呈现几个字符串的方式。所以这是预期的行为。如果字符串都是大写的话,你可以先小写,然后对它运行ToTitleCase。
e0bqpujr2#
我怀疑这是因为所有大写的单词都应该是缩写,比如USA。例如,你不会希望“地震袭击美国”被改为“地震袭击美国”,你会吗?
nnsrf1az3#
MSDN文档说:通常,标题大小写转换将单词的第一个字符转换为大写,其余字符转换为小写。但是,完全大写的单词(如首字母缩略词)不会被转换。所以它按预期工作。例如:
string TitleCaseString; TextInfo myTI = new CultureInfo("en-US",false).TextInfo; TitleCaseString = myTI.ToTitleCase(myTI.ToLowerCase("STRINGINCAPS"));
3条答案
按热度按时间7uhlpewt1#
来自MSDN文档:
注解通常,标题大小写转换将单词的第一个字符转换为大写,其余字符转换为小写。但是,此方法目前没有提供正确的大小写转换完全大写的单词,例如首字母缩写。下表显示了该方法呈现几个字符串的方式。
所以这是预期的行为。如果字符串都是大写的话,你可以先小写,然后对它运行ToTitleCase。
e0bqpujr2#
我怀疑这是因为所有大写的单词都应该是缩写,比如USA。
例如,你不会希望“地震袭击美国”被改为“地震袭击美国”,你会吗?
nnsrf1az3#
MSDN文档说:
通常,标题大小写转换将单词的第一个字符转换为大写,其余字符转换为小写。但是,完全大写的单词(如首字母缩略词)不会被转换。
所以它按预期工作。
例如: