ruby - 简化字符串乘法串联

时间:2010-07-05 11:27:11

标签: ruby string-concatenation

s是一个字符串,这看起来很啰嗦 - 我怎样才能简化这个? :

   if x === 2
      z = s
    elsif x === 3
      z = s+s
    elsif x === 4
      z = s+s+s
    elsif x === 5
      z = s+s+s+s
    elsif x === 6
      z = s+s+s+s+s

由于

4 个答案:

答案 0 :(得分:22)

这样的事情最简单,最有效(as seen on ideone.com):

puts 'Hello' * 3   # HelloHelloHello

s = 'Go'
x = 4
z = s * (x - 1)
puts z             # GoGoGo

API链接

  

ruby-doc.org - Stringstr * integer => new_str

     

复制 - 返回包含接收器整数副本的新String

"Ho! " * 3   #=> "Ho! Ho! Ho! "

答案 1 :(得分:2)

z=''
(x-1).times do
 z+=s
end

答案 2 :(得分:1)

伪代码(不是红宝石)

if 1 < int(x) < 7  then
   z = (x-1)*s

答案 3 :(得分:1)

例如,对于最多5星评级系统,您可以使用以下内容:

def rating_to_star(rating)
   'star' * rating.to_i + 'empty_star' * (5 - rating.to_i)
end