Ruby - Simplify String Multiply Concatenation
S Is a String, This Seems Very Long-Winded - How Can I Simplify This? : If X === 2 Z = S Elsif X === 3 Z = S+S Elsif X === 4 Z = S+S+S Elsif X === 5 Z =...
s is a string, This seems very long-winded - how can i simplify this? :
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
Thanks
4 Answers
Something like this is the simplest and works (as seen on ideone.com):
puts 'Hello' * 3 # HelloHelloHello
s = 'Go'
x = 4
z = s * (x - 1)
puts z # GoGoGo
API links
ruby-doc.org -
String:str * integer => new_strCopy—Returns a new
Stringcontaining integer copies of the receiver."Ho! " * 3 #=> "Ho! Ho! Ho! "
z=''
(x-1).times do
z+=s
end
Pseudo code (not ruby)
if 1 < int(x) < 7 then
z = (x-1)*s
For example for a rating system up to 5 stars you can use something like this:
def rating_to_star(rating)
'star' * rating.to_i + 'empty_star' * (5 - rating.to_i)
end