如何处理名称的自动字符大小写(第一个,最后一个)?

时间:2011-07-28 22:02:00

标签: c# regex user-interface string-formatting string-matching

  

可能重复:
  Does anyone have a good Proper Case algorithm

我目前处于一个不幸的位置,要求我使用正确的字符大小显示来自各种来源(Excel,Access等)的批处理过程中加载的用户名。

例如,如果名称已加载为“JOHN DOE”,则应显示为“John Doe”。

显然,麦当劳,奥莱利,勒布朗等名字很快变得非常复杂......

在研究这个问题时,我唯一可以找到的建议就是在所有大写字母中显示名称,而这个解决方案比显示麦当劳,奥莱利和勒布朗这样的名字更受欢迎我仍然希望确定我我做了尽职调查,然后回到他们面前,“这就是你能拥有的一切”。

是否有任何图书馆(开源或付费)可以帮助解决这个问题?我意识到它很可能不是完美的,但是如果它可以覆盖95%到99%的情况,那么那应该没问题。

提前致谢。

2 个答案:

答案 0 :(得分:1)

你可以查看Perl的NameCase模块,它正是这样做的。

答案 1 :(得分:1)

您可以在Globalization命名空间中使用TitleCase:

    string myName = "JOHN QUINCY PUBLIC";
    System.Globalization.CultureInfo cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
    System.Globalization.TextInfo textInfo = cultureInfo.TextInfo;
    string convertedName = textInfo.ToTitleCase(myName.ToLower());
    Console.WriteLine(convertedName);

将制作“John Quincy Public”

它不会按照你想要的方式处理撇号。