Ruby 循环和 类;将字符串拆分为数组并再次返回字符串
Ruby loops and classes; splitting a string into an array and back to a string again
Ruby 新手在这里使用 类 处理循环。我应该创建一个方法,该方法将采用一个字符串并在每个单词的末尾添加感叹号(通过使用 .split 使其成为一个数组)并再次将 'exclaimed' 单词作为一个字符串加入。我已经在这里待了两个小时,并决定我应该寻求帮助。我有一些想法,但我一直想出一个 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)>
Ruby 新手在这里使用 类 处理循环。我应该创建一个方法,该方法将采用一个字符串并在每个单词的末尾添加感叹号(通过使用 .split 使其成为一个数组)并再次将 'exclaimed' 单词作为一个字符串加入。我已经在这里待了两个小时,并决定我应该寻求帮助。我有一些想法,但我一直想出一个 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)>