Ruby循环和类; 将字符串拆分为数组并再次返回字符串

Ruby新手在这里处理循环与类。 我应该创建一个方法,它将采用一个字符串并在每个单词的末尾添加感叹号(通过使其成为一个带有.split的数组)并再次将“惊呼”的单词作为字符串加入。 我已经在这里待了两个小时,并决定我应该寻求帮助。 我有一些想法,但我不断提出NoMethod错误。 以下是对我有意义的方法之一,但当然,它不起作用。 我还在最后添加了规格。

class StringModifier attr_accessor :string def initialize(string) @string = string end def proclaim new_array = [] string.split.each do |word| new array = "#{word}!" new_array.join end new_array end end 

眼镜

 describe StringModifier do describe "#proclaim" do it "adds an exclamation mark after each word" do blitzkrieg_bop = StringModifier.new("Hey ho let's go").proclaim expect(blitzkrieg_bop).to eq("Hey! ho! let's! go!") end end end 

把你的方法写成:

 def proclaim string.split.map { |word| "#{word}!" }.join(" ") end 

或者把它写成:

 def proclaim a = string.split ("%s! " * a.size % a).strip end 

经过测试:

 [30] pry(main)> a = "Hey ho let's go".split => ["Hey", "ho", "let's", "go"] [31] pry(main)> ("%s! " * a.size % a).strip => "Hey! ho! let's! go!" [32] pry(main)>