.ToTitleCase不能处理所有大写字符串

s15*_*99d 16 .net vb.net asp.net

Public Function TitleCase(ByVal strIn As String)
      Dim result As String = ""
      Dim culture As New CultureInfo("en", False)
      Dim tInfo As TextInfo = culture.TextInfo()
      result = tInfo.ToTitleCase(strIn)
      Return result
 End Function
Run Code Online (Sandbox Code Playgroud)

如果我在上面的函数中输入"TEST".输出是"TEST".理想情况下它会输出"测试"

我也试过这篇文章的代码片段无济于事: 使用ToTitleCase

Rio*_*ams 26

如果内存服务,ToTitleCase()似乎永远不会适用于所有大写字符串.它基本上要求您在处理之前将字符串转换为小写.

来自MSDN:

通常,标题大小写将单词的第一个字符转换为大写,其余字符转换为小写.但是,此方法目前不提供适当的大小写来转换完全大写的单词,例如首字母缩略词.

解决方法用法(在C#中):

string yourString = "TEST";

TextInfo formatter = new CultureInfo("en-US", false).TextInfo;    
formatter.ToTitleCase(yourString.ToLower());
Run Code Online (Sandbox Code Playgroud)

  • 为了增加你的答案,还值得注意的是你可以简单地做:`System.Globalization.CultureInfo.InvariantCulture.TextInfo.ToTitleCase(myString.ToLower());`而不是创建多个对象. (8认同)