加入数组的元素

时间:2015-05-30 12:34:46

标签: arrays ruby string

为什么我的代码不打印连接的数组?使用此代码,数组将打印已修改的元素但未加入...

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

3 个答案:

答案 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