gpt4 book ai didi

ruby - 使用#inject 连接数组中的字符串

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:24 25 4
gpt4 key购买 nike

我正在浏览 an online lesson ,通常有一个非常简单的单行解决方案。一个问题指出,给定以下数组:

["emperor", "joshua", "abraham", "norton"]

我必须使用 #inject获取所有名称的单个字符串,并用一个字符串连接在一起,每个名称的首字母都有上限,如下所示:

"Emperor Joshua Abraham Norton"

虽然这可以通过 #map 轻松完成和 #join ,此特定练习仅需要使用#inject。我想到了这样的事情:

["emperor", "joshua", "abraham", "norton"].inject("") do |memo, word|
memo << word.capitalize << " "
end

这会给我:

"Emperor Joshua Abraham Norton "

字符串末尾的空格没有作为正确的解决方案通过。

  • 如何在末尾没有空格的情况下实现这一点?
  • 这是否是使用 #inject 的正确方法? , 传递一个空字符串?
  • 我是否正确使用了 <<组合字符串?

最佳答案

试试这个:

a.map{|t| t.capitalize}.join(" ")

我不认为你可以通过注入(inject)来逃避额外的空间。你还需要做

memo = memo + word.capitalize + " " 

编辑:由于语句已更改为强制您不使用 join 和 map,这里有一个有点难看的注入(inject)解决方案:

a.inject("") do |memo, world|
memo << " " unless memo.empty?
memo << word.capitalize
end

关于ruby - 使用#inject 连接数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9702780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com