【发布时间】:2016-02-18 16:18:06
【问题描述】:
我试图弄清楚是否存在允许您将字符串中的每个单词大写的现有库/方法,但是这些单词没有空格。例如:
"blueparrot" 应转换为"BlueParrot"
我知道如果有空格,我可以这样做:
var textInfo = new CultureInfo("en-US", false).TextInfo;
textInfo.ToTitleCase("blue parrot");
但是,没有间距,结果是
蓝鹦鹉
【问题讨论】:
-
这会相当困难,不是吗?你会如何处理复合词?
-
你需要一本包含所有现有单词的字典
-
我可以想到一种方法,它遍历每个字母并开始组合单词,然后在字典中找到它们。是的,它并不完美,但我认为可能。以它可以组合的最长单词为例。无论如何,我想我会问一下,看看有没有天才想出来并写了一个方法。
-
@KennethK。 ——我的想法是慢而不是困难,当然会有歧义。如果您可以访问字典表和
IsWord()方法,则可以一次咬掉一个字符,直到找到一个单词。清洗、冲洗并重复。 -
祝你好运,用字典,咬掉字符直到你得到一个单词,当单词是
Totaleclipse时,你最终会得到ToTaleClipSe
标签: c# asp.net title-case