一个简单的ruby程序的奇怪错误,它反转了输入句子中的单词

时间:2015-10-14 14:33:09

标签: 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 i&#39; for main:Object(NameError)     来自reverse_words_ex.rb:15:在`&#39;

我不明白他们为什么说我未定义。我真的很感激这里的一些帮助。 感谢

1 个答案:

答案 0 :(得分:4)

def reverse_words(sentence)
  return sentence.split(" ").reverse.join(" ")
end
  • .split(" ")在每个空格字符处拆分String,返回一个数组
  • .reverse正在颠倒数组中元素的顺序,返回数组
  • .join(" ")正在使用空格字符连接Array的元素,返回String