【发布时间】:2013-02-11 07:18:44
【问题描述】:
def titleize(string)
string.split(" ").map {|word| word.capitalize}.join(" ")
end
这会为每个单词加上标题,但我如何捕捉某些我不想大写的单词?
即)杰克和吉尔
请不要使用正则表达式。
更新:
我无法使这段代码正常工作:我让它打印一个全部大写的单词数组,但不是没有下面的列表。
words_no_cap = ["and", "or", "the", "over", "to", "the", "a", "but"]
def titleize(string)
cap_word = string.split(" ").map {|word| word.capitalize}
cap_word.include?(words_no_cap)
end
【问题讨论】:
-
您创建了一个所谓的“停用词”列表,其中包含您不想处理的单词。它可以是数组、集合、散列或正则表达式。正则表达式和哈希一样是处理问题的常用方法,因为它们都非常快。另外,不要拒绝回答说“不要使用...”。我们提供我们认为是解决问题的最佳解决方案,您可以随意不实施。
-
“不要使用正则表达式”在给出的示例代码中听起来有争议,因为
string.split实际上确实使用了正则表达式。您可能想要已经准备好使用的东西——然后看看titleize。它可以作为 gem 安装。