Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Định Dạng Chuỗi Ruby Dễ Dàng: Leading Zeros, Cột & Kiểu printf

Hãy nói về định dạng chuỗi trong Ruby.

Tại sao cần format? Ví dụ: số dưới 10 vẫn có leading zero (01, 02, 03...), hoặc output console căn chỉnh cột đẹp mắt.

Các ngôn ngữ khác dùng printf, C developers quen thuộc. Printf cần format specifiers và danh sách giá trị.

Bắt Đầu Với Định Dạng Chuỗi Ruby

Ruby có sprintf nhưng chúng ta dùng cách idiomatic hơn (community style guide chưa thống nhất, nhưng cách này ổn).

Ví dụ:

time = 5
message = "Processing of the data has finished in %d seconds" % [time]
puts message

Output => "Processing of the data has finished in 5 seconds"

%d là format specifier (danh sách specifiers), time là biến format. %d cho số nguyên.

Số thực dùng %f. Chỉ định số chữ số thập phân: %0.2f (2 chữ số).

score = 78.5431
puts "The average is %0.2f" % [score]

Output => The average is 78.54

Số được làm tròn: 78.549 → 78.55.

Chuyển Đổi & Padding

Số thập phân → hex: %x

puts "122 in HEX is %x" % [122]

Output => 122 in HEX is 7a

Padding số với leading zeros: %0<số zero>d

puts "The number is %04d" % [20]

Output => The number is 0020

Căn chỉnh cột (aligned columns): Thay 0 bằng dấu gạch ngang.

Định Dạng Chuỗi Ruby Dễ Dàng: Leading Zeros, Cột & Kiểu printf

Hoặc dùng .ljust và .rjust của String:

names_with_ages = [["john", 20], ["peter", 30], ["david", 40], ["angel", 24]]
names_with_ages.each { |name, age| puts name.ljust(10) + age.to_s }
# Output:
# john      20
# peter     30
# david     40
# angel     24

Kết Luận

Ruby & Rails string formatting rất dễ, chỉ cần hiểu các format specifiers.

Hy vọng bạn thích chuyến đi nhanh vào thế giới định dạng output! Đăng ký newsletter để nhận thêm nội dung hay 🙂