为什么我的代码不打印连接的数组?使用此代码,数组将打印已修改的元素但未加入...
def translate(string)
vowels=['a','e','o','u','i']
string=string.split
string.map! do
|x| if vowels.include? x[0]
x.insert(-1,'ay')
else
x=x.slice(1, x.length)
x=x.insert(-1, x[0]+'ay')
end
end
string.join('-')
print(string)
end
答案 0 :(得分:3)
Array#join
方法不将自身设置为连接字符串,而只是返回一个连接字符串。您可以将加入的结果保存到string
本身,如下所示:
# ...
string = string.join('-')
print string
当然,使用另一个变量可以更具可读性:
# ...
joined_string = string.join('-')
print joined_string
答案 1 :(得分:1)
您不会打印从join
返回的值。
joined = string.join('-')
print(joined)
答案 2 :(得分:1)
这是因为您没有将join
返回的值存储在任何地方。 string
本身仍然是一个数组。试试这个:
print string.join('-')
因此,您的方法应如下所示:
def translate(string)
vowels=['a','e','o','u','i']
string=string.split
string.map! do
|x| if vowels.include? x[0]
x.insert(-1,'ay')
else
x=x.slice(1, x.length)
x=x.insert(-1, x[0]+'ay')
end
end
print string.join('-')
end