arrays - Ruby - 我在将数组中的特定单词大写时遇到困难,这些单词将作为字符串返回
问题描述
我一天中的大部分时间都在为此工作,我可以让“大卫科波菲尔”以“大卫科波菲尔”的身份回归,但我无法让“桂河上的桥”以“The桂河大桥”。
这是我的代码:
def titleize(title)
titleArray = title.split(/ /)
capitalized = []
i = 0
while i < titleArray.length do #I wanted to do some sort of comparison here with an &&
if i == 0
capitalized << titleArray[i].capitalize
else
capitalized << titleArray[i]
end
i += 1
end
puts titleArray.inspect
puts capitalized.to_s
end
titleize("david copperfield")
titleize("the bridge over the river kawi")
我应该忽略另一组单词吗?( the
, and
, but
, of
...etc) 如果是这样,有人可以提醒我如何比较两个数组吗?
解决方案
这是对您的代码的最小更改,以使其正常工作:
EXCLUDED_WORDS = ['over', 'the']
def titleize(title)
titleArray = title.split(/ /)
capitalized = []
i = 0
while i < titleArray.length do
if i == 0 || !EXCLUDED_WORDS.include?(titleArray[i])
capitalized << titleArray[i].capitalize
else
capitalized << titleArray[i]
end
i += 1
end
titleArray.join(' ')
end
这是同一事物的更红宝石风格的版本:
EXCLUDED_WORDS = ['over', 'the']
def titleize(title)
title.split(/ /).map.with_index do |i, word|
if i == 0 || !EXCLUDED_WORDS.include?(word)
word.capitalize
else
word
end
end.join(' ')
end
推荐阅读
- reactjs - 希望数据库中的数据进入我制作的反应表
- javascript - 在 IE11 中不起作用的内容可编辑 div 中将插入符号移至末尾
- sql - pyspark 使用 sql 查询并通过优化进行分组
- python - Python:如何从包含页面@odata.nextLink 的 Odata API 中提取数据
- amazon-web-services - Terraform:depends_on 模块无法在 AWS 中按预期工作
- sql - 如何合并 sql 查询以根据日期获取输出
- java - 如何在 XWPFDocument Apache POI 中旋转图片
- python - 生成器的 max() 是构建类似列表的对象还是工作效率更高?
- python - 如何使用 pandas 在某些列上做 ffil?
- angular - 有没有办法列出 Angular 项目中所有活动的 ESLint / Prettier 规则?