ruby – 简化字符串乘法串联

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 

谢谢

像这样的东西是最简单和最有效的( 如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! " 
 z='' (x-1).times do z+=s end 

伪代码(不是ruby)

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

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

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