如何在Ruby中正确使用ljust和rjust?
我有一些代码:如何在Ruby中正确使用ljust和rjust?,ruby,string,Ruby,String,我有一些代码: line_width = 26 ch3 = "Chapter 3: Letters page 13" puts(ch3.ljust(line_width/2) + ch3.rjust(line_width/2)) #=> Chapter 3: Letters page 13Chapter 3: Letters page 13 我希望输出按如下方式从中间拆分: Half-Text______________________________________________
line_width = 26
ch3 = "Chapter 3: Letters page 13"
puts(ch3.ljust(line_width/2) + ch3.rjust(line_width/2))
#=> Chapter 3: Letters page 13Chapter 3: Letters page 13
我希望输出按如下方式从中间拆分:
Half-Text__________________________________________________Half-Text
怎么做?您需要先将文本分成两部分
line_width = 26
ch3 = "Chapter 3: Letters page 13"
ch3 = ch3.split(/\s(?=page)/) #=> ["Chapter 3: Letters", "page 13"]
puts(ch3[0].ljust(line_width / 2) + ch3[1].rjust(line_width / 2))
这个输出
Chapter 3: Letters page 13
如果我理解正确,我不会在这里使用
ljust
和rjust
line_width = 40
ch3 = "Chapter 3: Letters page 13"
left, right = ch3.split(/\s(?=page\s+\d+)/)
#=> ["Chapter 3: Letters", "page 13"]
puts left + ' '*(line_width-left.size-right.size) + right
印刷品
Chapter 3: Letters page 13
请注意,“”*(line_width-left.size-right.size)
创建一个由
line_with-left.size-right.size
#=> 40 - 18 - 7 => 15
空间。啊,谢谢。我只是在读我的课本,它从来没有提到使用split。很奇怪。很高兴不仅仅是我是一个哑巴。
“第三章:字母”。size#=>18
和线宽/2#=>13
,所以放入(ch3[0]。ljust(lineu width/2)
尝试将长度18
的字符串填充到13
空格中。结果是.ljust(lineu width/2)
被忽略。(例如,“abcdef”.ljust(1)#=>“abcdef”
)。但是,由于“第13页”。大小#=>7
,ch3[1]
将在左侧填充13-7
6空格。因此,您的实际行长是18+6+7
空格,而不是26
空格。您真的想在这两行之间显示一行吗?”“半文本”字符串,还是表示空格?你说的“半文本”是什么意思?为什么不用你实际想要的字符串替换“半文本”作为例子。我假设线宽
等于第13页“第3章:字母”
和结尾的字符串长度“
,中间有一行或多行空格。如果是,则两端之间只有一个空格(或一行长度为1)。如果是第”101页“
,则两端之间将没有空格。