【问题标题】:Capitalize each word in string that has no spaces将字符串中没有空格的每个单词大写
【发布时间】: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


【解决方案1】:

除了说 something 将 2 个单词的字符串放在一起开始之外,没有简单的解决方案,此时您需要提供有关单词位置的信息break 是,或适当地格式化它。

【讨论】:

    猜你喜欢
    • 2022-08-19
    • 2010-10-16
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2011-01-20
    相关资源
    最近更新 更多