我试图使用TextInfo.ToTitleCase
将某些名称转换为正确的大小写。它适用于小写和大小写混合的字符串,但对于所有大写字符的字符串,它返回输入字符串。
MSDN文档中没有提到任何有关此行为的内容,任何见解?
答案 0 :(得分:73)
来自MSDN docs:
备注 通常,标题大小写将单词的第一个字符转换为大写,其余字符转换为小写。但是,此方法目前不提供适当的大小写来转换完全大写的单词,例如首字母缩略词。下表显示了该方法呈现多个字符串的方式。
所以这是预期的行为。如果字符串全部为大写,则可以首先小写字符串,然后在其上运行ToTitleCase。
答案 1 :(得分:8)
我怀疑这是因为所有大写字母都应该是缩写,例如美国。
例如,您不会期望“地震袭击美国”会改为“地震袭击美国”吗?
答案 2 :(得分:4)
MSDN文档说:
通常,标题大小写将单词的第一个字符转换为大写,其余字符转换为小写。但是,一个完全大写的单词,例如首字母缩略词,不会被转换。
所以它按预期工作。试试TextInfo.ToTitleCase(TextInfo.ToLowerCase("STRINGINCAPS")
像:
string TitleCaseString;
TextInfo myTI = new CultureInfo("en-US",false).TextInfo;
TitleCaseString = myTI.ToTitleCase(myTI.ToLowerCase("STRINGINCAPS"));