如何将Ruby字符串左对齐或右对齐?

26

我有几个Ruby字符串,我想要适当地左右对齐。

我现在正在使用"Name".center(20, " ")来得到"(7个空格)Name(8个空格)"

我如何实现"Name(15个空格)""(15个空格)Name"

谢谢。

3个回答

44
"Name".ljust(19)
"Name".rjust(19)

8

Ruby在Kernel中定义了一个printf方法,尝试使用它。

它支持许多常见的"f"(格式,例如scanfprintf,...)选项(参见例如man 3 printf)。

左右对齐可以像这样完成(从评论中提取):

printf("%10s", "right")
printf("%-10s","left") 

这里没有右对齐,只有左对齐 - 来源 - wieczorek1990
4
printf("%10s","string here") 右对齐 printf("%-10s","string here") 左对齐 - Schylar

1

插入n个字符的副本

当然还有其他方法可以实现这个功能,但其中一种方法是使用展开运算符来复制一个字符(例如空格字符)特定次数。例如:

puts (' ' * 15) + 'Name'
puts 'Name' + (' ' * 15)

谢谢。我认为sawa的解决方案更加优雅和易读。 - Sathish Manohar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接