3

我需要制作一种重复给定单词的方法,但我认为我设计错了。我需要单词之间的空格,我在这里缺少什么?

def repeat(word, repeats=2)
  sentence = word.to_s * repeats
  return sentence
end
4

4 回答 4

6

当然,您缺少空格。

你可以这样做:

def repeat(word, repeats = 2)
  Array.new(repeats, word).join(" ")
end
于 2013-06-17T04:46:02.787 回答
3

您可以编写如下代码:

def repeat(word, repeats=2)
  ([word] * repeats).join(" ")
end

repeat("Hello",4)
# => "Hello Hello Hello Hello"
于 2013-06-17T05:00:26.773 回答
0

这是一种更接近您的方法且不使用临时数组的方法:

def repeat(word, repeats=2)
  ("#{word} " * repeats).chop
end
  • "#{word} "使用字符串插值将单词转换为字符串并附加一个空格
  • … * repeats创建一个包含重复副本的字符串
  • .chop返回删除最后一个字符的字符串(尾随空格)

不必创建数组会使代码更快一些。

于 2013-06-17T08:10:27.040 回答
0
w = 'kokot'
n = 13
n.times.map { w.each_char.to_a.shuffle.join }.tap { |a, _| a.capitalize! }.join(' ') << ?.
于 2013-06-17T10:33:57.503 回答