1

如果单词以元音开头,我已经编写了一种将ay 添加到单词末尾的方法。如果单词以辅音开头,它将把辅音移到单词的末尾,然后添加ay。

我的问题是我的结果是在一个数组中返回的,例如: translate("happy animals") 而不是得到 "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

translate("快乐的动物") => ['appyhay', 'animlasay']

需要答案:“appyhay animalsay”

4

1 回答 1

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
于 2013-09-16T17:03:59.663 回答