ruby - 简化字符串乘法连接

发布于 2024-09-07 21:03:53 字数 240 浏览 2 评论 0原文

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

谢谢

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夜清冷一曲。 2024-09-14 21:03:53

像这样的东西是最简单且有效的(如 ideone.com 上所示):

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

API 链接

ruby-doc.org - 字符串: str * 整数 => new_str

复制 - 返回一个新的字符串,其中包含接收器的整数个副本。

“嗬!” * 3 #=> “嗬!嗬!嗬!”

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_str

Copy—Returns a new String containing integer copies of the receiver.

"Ho! " * 3   #=> "Ho! Ho! Ho! "
忆梦 2024-09-14 21:03:53
z=''
(x-1).times do
 z+=s
end
z=''
(x-1).times do
 z+=s
end
陌路黄昏 2024-09-14 21:03:53

伪代码(不是 ruby​​)

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

Pseudo code (not ruby)

if 1 < int(x) < 7  then
   z = (x-1)*s
若无相欠,怎会相见 2024-09-14 21:03:53

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

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

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文