রুবিতে স্ট্রিং ফরম্যাটিং কীভাবে করা যায় সে নিয়ে কথা বলা যাক।
কেন স্ট্রিং ফরম্যাট করবেন? হয়তো আপনি চান ১০-এর নিচের নম্বরের সামনে শূন্য থাকে (উদাহরণ: 01, 02, 03…), অথবা কনসোল আউটপুটকে সুন্দর কলামে সাজাতে চান।
অন্য ভাষায় printf ফাংশন ব্যবহার করা হয় স্ট্রিং ফরম্যাট করার জন্য, এবং C জানলে আপনি সেটি জানতেই থাকেন। printf-এ ফরম্যাট স্পেসিফায়ার এবং ভেরিয়েবল/ভ্যালুর লিস্ট ডিফাইন করতে হয়।
রুবি স্ট্রিং ফরম্যাটিং শুরু করা
sprintf রুবিতে উপলব্ধ হলেও, এই পোস্টে আমরা একটি আরও ইডিোমেটিক পথ ব্যবহার করব (কমিউনিটি স্টাইল গাইড একমত নয় এই বিষয়ে, কিন্তু আমার মতে এটি ঠিক)।
একটি উদাহরণ:
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 হলো ফরম্যাট স্পেসিফায়ার (উপলব্ধ স্পেসিফায়ার লিস্ট এখানে) এবং time হলো ভেরিয়েবল যা ফরম্যাট করতে চাই। %d ফরম্যাট দিয়ে পূর্ণসংখ্যা পাওয়া যায়।
ফ্লোটিং পয়েন্ট নম্বর দেখাতে চাইলে %f ব্যবহার করুন। ডেসিমেল প্লেস নির্দিষ্ট করতে: %0.2f।
এখানে 2 বোঝায় আমরা শুধু দুই দশমিক স্থান রাখতে চাই।
উদাহরণ:
score = 78.5431 puts "The average is %0.2f" % [score]
Output => The average is 78.54
মনে রাখবেন নম্বরটি রাউন্ড আপ হবে। উদাহরণস্বরূপ, যদি পिछলে 78.549 ব্যবহার করতাম, তবে আউটপুট হতো 78.55।
কনভার্ট ও প্যাডিং
ডেসিমেল নম্বরকে হেক্সাডেসিমালে কনভার্ট করে প্রিন্ট করতে %x ফরম্যাট ব্যবহার করুন:
puts "122 in HEX is %x" % [122]
Output => 122 in HEX is 7a
স্ট্রিং প্যাড করতে:
এই ফরম্যাট ব্যবহার করুন যতটুকু ০ দিয়ে প্যাড করতে চান: %0<number of zeros>d
puts "The number is %04d" % [20]
Output => The number is 0020
এই রুবি স্ট্রিং ফরম্যাট ট্রিক দিয়ে অ্যালাইনড কলাম ও তৈরি করা যায়। ০-র বদলে ড্যাশ ব্যবহার করলে ইফেক্ট পাওয়া যায়:

বিকল্পভাবে, String ক্লাসের .ljust এবং .rjust মেথডও একই কাজ করতে পারে।
উদাহরণ:
names_with_ages = [["john", 20], ["peter", 30], ["david", 40], ["angel", 24]]
names_with_ages.each { |name, age| puts name.ljust(10) + age.to_s }
# নিচের টেবিল প্রিন্ট হবে
john 20
david 30
peter 40
angel 24
উপসংহার
আপনি দেখেছেন রুবি এবং রেইলসে স্ট্রিং ফরম্যাটিং খুব সহজ, শুধু ফরম্যাট স্পেসিফায়ারগুলো বুঝলেই হয়।
আশা করি আউটপুট ফরম্যাটিং-এর দুনিয়ায় এই দ্রুত সফরটি আপনাকে ভালো লেগেছে! নিউজলেটার সাবস্ক্রাইব করতে ভুলবেন না 🙂