有没有人有可信的 Proper Case 或 PCase 算法(类似于 UCase 或 Upper)?我正在寻找采用诸如 "GEORGE BURDELL"
或 "george burdell"
之类的值并将其转换为 "George Burdell"
.
我有一个简单的处理简单案例的方法。理想的是拥有可以处理诸如 "O'REILLY"
之类的东西并将其转换为 "O'Reilly"
,但我知道这更难。
如果可以简化事情,我主要关注英语。
更新:我使用 C# 作为语言,但我几乎可以从任何东西进行转换(假设存在类似的功能)。
我同意麦当劳的场景很艰难。我本来打算在我的 O'Reilly 示例中提到这一点,但没有在原始帖子中提及。
最佳答案
除非我误解了你的问题,否则我认为你不需要自己动手,TextInfo 类可以为你做。
using System.Globalization;
CultureInfo.InvariantCulture.TextInfo.ToTitleCase("GeOrGE bUrdEll")
将返回“George Burdell。如果涉及一些特殊规则,您可以使用自己的文化。
更新: Michael (在对此答案的评论中)指出,如果输入全部大写,这将不起作用,因为该方法将假定它是首字母缩写词。解决这个问题的简单方法是在将文本提交给 ToTitleCase 之前对文本执行 .ToLower()。
关于algorithm - 有没有人有好的 Proper Case 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149/