是否有人拥有受信任的适当案例或PCase算法(类似于UCase或Upper)?我正在寻找一个值,例如"GEORGE BURDELL"或"george burdell"将其转换为"George Burdell"。
"GEORGE BURDELL"
"george burdell"
"George Burdell"
我有一个简单的例子可以处理简单的情况。理想的情况是拥有可以处理诸如的东西"O'REILLY"并将其转换为"O'Reilly",但是我知道这更难。
"O'REILLY"
"O'Reilly"
如果可以简化的话,我主要关注英语。
更新: 我使用C#作为语言,但是我几乎可以转换任何东西(假设存在功能)。
我同意麦当劳的情景很艰难。我想在我的O’Reilly示例中提及这一点,但在原始帖子中却没有提及。
除非我误解了您的问题,否则我认为您不需要自己动手,TextInfo类可以为您完成。
using System.Globalization; CultureInfo.InvariantCulture.TextInfo.ToTitleCase("GeOrGE bUrdEll")
会返回“乔治·伯德尔(George Burdell)。如果涉及一些特殊规则,您可以使用自己的文化。
更新: Michael(在对此答案的评论中)指出,如果输入全为大写,则此方法将无效,因为该方法将假定它是首字母缩写词。幼稚的解决方法是在将文本提交给ToTitleCase之前将文本放到.ToLower()处。