【问题标题】:Print Horizontal Line in Ruby用 Ruby 打印水平线
【发布时间】:2013-11-24 22:22:20
【问题描述】:

ruby 的 puts 或 print 可以像 bash 和 printf+tr 一样绘制水平线吗?

printf '%20s\n' | tr ' ' -

这将绘制:

--------------------

【问题讨论】:

  • @Felix 等等,你的意思是告诉我,你不能只在 ruby​​ 中使用标准库来做这件事吗?
  • 好吧,我没抓住重点。我指的是诅咒,因为我认为您想要一条没有“空格”的行。

标签: ruby printing printf puts


【解决方案1】:

可以使用下面的sn-p

puts "-"*20

查看this 以获得更多帮助。

您可能也对使用ljustrjustcenter 进行格式化感兴趣。

【讨论】:

  • 只是问一下,Ruby 没有像 Python 中的 "{0:^20}".format(var) 这样的东西吗?
  • @GamesBrainiac 您提到的 sn-p 的输出是 ' - ' 这不是 OP 需要的。但是print("-" * 20) 也应该在 python 中工作。
  • 我意识到这一点,但如果你问一些更具体的问题,那么你就破产了。例如,如果您想用- 填充空白空间并且您有一些字符串可以用来格式化它,那么您就被卡住了。在 python 中,它很简单"{0:-^20}".format("END OF TASK")
  • @GamesBrainiac in ruby​​ 您可以通过 "END OF TASK".ljust(20,"-")rjust 执行此操作,具体取决于您要填充的一侧
【解决方案2】:

我使用快速puts "*"*80 进行调试。我敢肯定还有更好的方法。

【讨论】:

    【解决方案3】:

    对于花哨的线条:

    p 'MY_LINE'.center(80,'_-')
    #=> "_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-MY_LINE_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_"
    

    【讨论】:

      【解决方案4】:

      您还可以拥有以下内容:

      puts "".center(20, "-")
      
      irb(main):005:0> puts "".center(20, '-')
      => "--------------------"
      

      如果您想添加其他信息,这可能会更灵活:

      irb(main):007:0> puts "end of task".center(20, "-")
      ----end of task-----
      => nil
      

      【讨论】:

      • +1 正要在 cmets 中回复我的答案,但后来看到了你的答案。 FWIW,我的答案中的链接还有.center.ljust.rjust 的文档。
      • @ansh0l 我研究并发现了它。不过,我从聊天室的人那里得到了可怕的抨击:P
      【解决方案5】:

      您也可以使用String#ljustString#rjust

      puts ''.rjust(20,"-")
      # >> --------------------
      puts ''.ljust(20,"-")
      # >> --------------------
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多