代码之家  ›  专栏  ›  技术社区  ›  Dr. Frankenstein

ruby-simplify字符串乘法级联

  •  10
  • Dr. Frankenstein  · 技术社区  · 16 年前

       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 回复  |  直到 16 年前
        1
  •  23
  •   Community Mohan Dere    6 年前

    像这样的东西是最简单和有效的( as seen on ideone.com ):

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

    ruby-doc.org - String str * integer => new_str

    copy返回一个新的 字符串 包含 收件人的副本。

    "Ho! " * 3   #=> "Ho! Ho! Ho! "
    
        2
  •  2
  •   bragboy    16 年前
    z=''
    (x-1).times do
     z+=s
    end
    
        3
  •  1
  •   karlcow    16 年前

    伪代码(不是ruby)

    if 1 < int(x) < 7  then
       z = (x-1)*s
    
        4
  •  1
  •   pastullo    12 年前

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

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