Ruby字符串连接添加空间

时间:2013-06-17 04:43:11

标签: ruby methods

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

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

4 个答案:

答案 0 :(得分:6)

当然,你缺少空格。

你可以这样做:

def repeat(word, repeats = 2)
  Array.new(repeats, word).join(" ")
end

答案 1 :(得分:3)

您可以编写如下代码:

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

repeat("Hello",4)
# => "Hello Hello Hello Hello"

答案 2 :(得分:0)

这是一个更接近你的方法而不使用临时数组的人:

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

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

答案 3 :(得分:0)

w = 'kokot'
n = 13
n.times.map { w.each_char.to_a.shuffle.join }.tap { |a, _| a.capitalize! }.join(' ') << ?.