2015-10-14 38 views
-1

为了说明上下文,我是一名红宝石初学者。一个简单的ruby程序出现奇怪的错误,它颠倒了输入句子中的单词

所以,我正在做一个简单的练习:创建一个ruby程序,它可以反转输入句子中的单词。

这是我做过什么:

def reverse_words(sentence) 

    reversed_sentence = [] 
    words = sentence.split(" ") 

    i = 0 
    while i < words.length 
    reversed_sentence = words[i] + reversed_sentence 
    i += 1 
    end 

return reversed_sentence.join(" ") 

end 

# I make a simple test by adding: 
puts reverse_words("Hi how are you") 

当我运行程序时,它说:

reverse_words_ex.rb:7:reverse_words': undefined local variable or method我”主:从reverse_words_ex对象(NameError) .rb:15:in''

我不明白他们为什么说我没有定义。我非常感谢这里的帮助。 感谢

+0

[是否应该像这样工作?](https://repl.it/BQ06) – potashin

+0

这行'reversed_sentence = words [i] + reversed_sentence'是错误的,因为你总结了String和Array。你应该考虑'<<'方法。 –

回答

4
def reverse_words(sentence) 
    return sentence.split(" ").reverse.join(" ") 
end 
  • .split(" ")在每个空格字符分割的字符串,返回数组
  • .reverse被扭转数组中的元素的顺序,返回数组
  • .join(" ")正在加入的元素具有空格字符的数组,返回一个字符串
相关问题