-1
我试图将字符串转换为数组,然后使用Enumerable#each
将其反转。在下面,我期望得到["k","o","o","b"]
。将字符串转换为数组并将其反转
def reverse(string)
array = string.split("")
reverse_array = []
i = array.length - 1
array.each do |letter|
reverse_array << letter[i]
i = i - 1
break if i == -1
end
p reverse_array
end
reverse("book") # => [nil, nil, nil, "k"]
有人能解释为什么我越来越nil
,我将如何使用Enumerable#each
修复代码?
的[逆向Ruby中的字符串]可能的复制(http://stackoverflow.com/questions/3057967/reverse- a-string-in-ruby) –
问题在于'reverse_array << letter [i]'这一行。变量字母包含单个字母,而不是数组,因此只需删除'[i]'。 – neuronaut
摆脱'[i]':摆脱4,7和8行。 – steenslag