如何加入最终结果,使它不是一个数组,而是一个字符串?

时间:2013-09-16 16:58:38

标签: ruby string join rspec iteration

我已经写过一种方法,如果用元音开头,就可以在单词的末尾加上ay。如果单词以辅音开头,它会将辅音移到单词的末尾,然后添加一个。

我的问题是我的结果以数组形式返回,例如: 翻译(“快乐的动物”) 而不是得到“appyhay animalsay” 我得到[“appyhay”,“animalsay”] 我最后尝试加入它们,但是当我运行测试时它说无法找到连接方法? 这只是一团糟还是我越来越近了? 非常感谢任何见解:)

def translate(word)
  multiplewords = word.split(" ")
multiplewords.map! do |x|
    separated = x.split("")
        if !'aeiou'.include?(separated[0])
            while !'aeiou'.include?(separated[0])
                letter = separated.shift
                separated << letter
                separated
            end
            final = separated.join("") + "ay"
        else
            final = separated.join("") + "ay"
        end
    end
end

翻译(“快乐的动物”)=&gt; ['appyhay','animlasay']

需要回答:“appyhay animalsay”

1 个答案:

答案 0 :(得分:2)

您应该在最后一部分加入。我也尝试过简化它。

#!/usr/bin/env ruby

def translate(word)
  word.split(" ").map do |x|
    separated = x.split("")
    if !'aeiou'.include?(separated[0])
      while !'aeiou'.include?(separated[0])
        letter = separated.shift
        separated << letter
      end
    end
    separated.join("") + "ay"
  end.join(' ')
end

puts translate("happy animals") 

输出:

appyhay animalsay