在Ruby中填充字符串是否有更优雅的方法?

时间:2015-05-26 15:55:31

标签: ruby string

所以我有一个名为borrowed_book_bitmask的字符串,我想在左侧和右侧填充另一个字符串。填充在某些类中定义为常量。所以我有

borrowed_book_bitmask = Module1::Model1::BITMASK_PADDING + borrowed_book_bitmask + Module1::Model1::BITMASK_PADDING

这种语法有点笨拙而且不优雅。是否有更好,更简洁的方式来表达上述内容?

假设我无法更改变量名称和常量名称。

4 个答案:

答案 0 :(得分:1)

您可以使用center method

a = "abc"
"abc.center(a.size + 4 * 2)
=> "    abc    "

答案 1 :(得分:1)

“pad”是什么意思?总是在每一边添加相同的字符串?

"#{Module1::Model1::BITMASK_PADDING}#{borrowed_book_bitmask}#{Module1::Model1::BITMASK_PADDING"}

“优雅”是什么意思?插值比串联更加优雅(而且性能更高的IIRC,我可能不会)。如果borrowed_book_bitmask是一种方法,那么您可以将其嵌入到方法中,或使用装饰器来封装功能。

答案 2 :(得分:1)

在我看来,不完美来自于模块参数的重复;我不得不在视觉上解析两个长期术语来检查它们是否相同。

pad = Module1::Model1::BITMASK_PADDING
borrowed_book_bitmask = pad + borrowed_book_bitmask + pad

......太明显了?也许这对我来说更优雅。

答案 3 :(得分:0)

borrowed_book_bitmask.gsub! /\A|\z/, Module1::Model1::BITMASK_PADDING