Hãy nói về cách bạn có thể định dạng chuỗi trong ruby.
Tại sao bạn muốn định dạng một chuỗi? Chà, bạn có thể muốn làm những việc như có số 0 ở đầu ngay cả khi số dưới 10 (ví dụ:01, 02, 03…) hoặc có một số đầu ra bảng điều khiển được định dạng độc đáo theo cột.
Trong các ngôn ngữ khác, bạn có thể sử dụng printf chức năng định dạng chuỗi, và nếu bạn đã từng sử dụng C thì có lẽ bạn đã quen với điều đó. Để sử dụng printf bạn phải xác định danh sách các chỉ định định dạng và danh sách các biến hoặc giá trị.
Bắt đầu với Định dạng chuỗi Ruby
Trong khi sprintf cũng có sẵn trong Ruby, trong bài đăng này, chúng tôi sẽ sử dụng một cách thành ngữ hơn (vì một số lý do, hướng dẫn về phong cách cộng đồng dường như không đồng ý về điều này, nhưng tôi nghĩ điều đó ổn).
Đây là một 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"
Trong ví dụ này, % d là trình định dạng (đây là danh sách các từ thông số có sẵn) và thời gian là biến chúng tôi muốn định dạng. Định dạng% d sẽ chỉ cung cấp cho chúng tôi các số nguyên.
Nếu chúng ta muốn hiển thị số dấu phẩy động, chúng ta cần sử dụng % f . Chúng tôi có thể chỉ định số chữ số thập phân mà chúng tôi muốn như sau:% 0.2f .
2 ở đây cho biết rằng chúng tôi chỉ muốn giữ lại hai chữ số thập phân.
Đây là một ví dụ:
score = 78.5431 puts "The average is %0.2f" % [score]
Output => The average is 78.54
Hãy nhớ rằng số sẽ được làm tròn. Ví dụ:nếu tôi sử dụng 78.549
trong ví dụ cuối cùng, nó sẽ được in 78.55
.
Chuyển đổi và đệm
Bạn có thể chuyển đổi một số thập phân và in nó dưới dạng thập lục phân. Sử dụng % x định dạng:
puts "122 in HEX is %x" % [122]
Output => 122 in HEX is 7a
Để đệm một chuỗi:
Sử dụng định dạng này để đệm một số có nhiều số 0 như bạn muốn:% 0
puts "The number is %04d" % [20]
Output => The number is 0020
Bạn cũng có thể sử dụng định dạng chuỗi ruby này thủ thuật để tạo các cột văn bản được căn chỉnh. Thay thế số 0 bằng dấu gạch ngang để có hiệu ứng này:
Ngoài ra, bạn có thể sử dụng .ljust và .rjust
các phương thức từ lớp String để thực hiện tương tự.
Ví dụ :
names_with_ages = [["john", 20], ["peter", 30], ["david", 40], ["angel", 24]] names_with_ages.each { |name, age| puts name.ljust(10) + age.to_s } # Prints the following table john 20 david 30 peter 40 angel 24
Kết luận
Như bạn đã thấy định dạng chuỗi ruby &rails thực sự dễ dàng, tất cả đều phụ thuộc vào việc hiểu các chỉ định định dạng khác nhau có sẵn cho bạn.
Tôi hy vọng bạn thích chuyến đi nhanh chóng này vào thế giới định dạng đầu ra! Đừng quên đăng ký nhận bản tin của tôi để tôi có thể gửi cho bạn nhiều nội dung hay hơn 🙂