【问题标题】:Ruby - Centering a multi-line stringRuby - 使多行字符串居中
【发布时间】:2014-05-26 17:57:11
【问题描述】:

在 Ruby 中,我想将多行字符串居中,使其显示在屏幕中间。我查阅了 Class:String Ruby 文档,也搜索了 Google,但找不到解决方案。

这是我尝试过的。在这里,我在每行之后使用转义字符 \n 作为换行符,因此我不必在每一行上输入 puts 和引号。我还在字符串末尾输入了String类的center方法,因为我希望所有行都居中,而不是在每行之后调用该方法。

def draw_string
  puts "******** \n
        ******** \n
        ******** \n
        ********".center(150)
end

当我调用 draw_string 时,这就是我想看到的

                                   ********
                                   ********
                                   ********
                                   ******** 

这就是我得到的

                                   ******** 
******** 
******** 
********

请不要问我为什么要把这个放在中心,但请给出建议。非常感谢

【问题讨论】:

  • 你在每行之间放了两个\n,不确定这是不是故意的。
  • 看来这是我的错误。我将编辑我的帖子,使其只有 1 个新行。我想多了。
  • 您还需要从字符串本身中删除额外的\n。没有必要,除了转义的\n 换行符之外,您还插入了一个文字换行符。看我的回答;我已经从字符串中删除了多余的\n
  • 如果要居中的字符串不止一个,可以用字符串作为参数编写方法;即def draw_string(str).

标签: ruby string newline quotes centering


【解决方案1】:

您需要将每条线分别居中。 Ruby 的字符串类不支持多行字符串居中。

使用简单的拆分/映射/连接组合:

def draw_string
  puts "********
        ********
        ********
        ********".lines.map { |line| line.strip.center(150) }.join("\n")
end

【讨论】:

  • 非常感谢,它成功了。非常感谢您的建议。再次感谢您
猜你喜欢
  • 2022-12-22
  • 2011-03-22
  • 2010-10-10
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 2022-12-17
  • 2011-05-09
  • 2014-03-26
相关资源
最近更新 更多