所以这是我正在研究的Ruby代码:
def translate(x)
array = x.split(" ")
array.each do |y|
if y.match(/^[aeiou]/)
y += "ay"
else
until y.match(/^[aeiou]/) do
var = y[/^[^aeiou]*/]
y.slice! /^[^aeiou]*/
y += (var + "ay")
end
end
x = y.join(" ")
x
end
end
我测试时出现问题。就是这样:
NoMethodError:
undefined method `join' for "appleay":String
完全不确定我的连接方法是什么问题。
答案 0 :(得分:1)
y
是一个字符串。如果你需要从它的字符数组中制作你应该这样做:
x = y.split(//).join(" ")
但可能你想把它放在循环之后。它看起来像:
def translate(x)
array = x.split(" ")
x = []
array.each do |y|
if y.match(/^[aeiou]/)
y += "ay"
else
until y.match(/^[aeiou]/) do
var = y[/^[^aeiou]*/]
y.slice! /^[^aeiou]*/
y += (var + "ay")
end
end
x << y
end
x.join(' ')
end