2012-09-20 19 views
21

formating một Integer để được làm đầy với số không rất dễ dàng trong Ruby:của Ruby zerofill một chuỗi

sprintf("%010d", 345) #=> "0000000345" 

Nhưng khi tôi cố gắng để điền vào một String với số không tôi không thể tìm thấy một giải pháp dễ dàng:

sprintf("%010d", "12AD") #=> ArgumentError: invalid value for Integer(): "12AD" 
sprintf("%010s", "12AD") #=> "  12AD" 

tôi muốn để có được:

sprintf("%010s", "12AD") #=> "00000012AD" 

Trả lời

46

Bạn có thể sử dụng rjust hoặc ljust.

>> "12AD".rjust(10, '0') 
#=> "00000012AD" 
+0

Làm thế nào không !! Rõ ràng là dễ hơn sprintf! –