কম্পিউটার টিউটোরিয়াল

রুবি স্ট্রিং ফরম্যাটিং: লিডিং জিরো, কলাম ও printf স্টাইল সহজে

রুবিতে স্ট্রিং ফরম্যাটিং কীভাবে করা যায় সে নিয়ে কথা বলা যাক।

কেন স্ট্রিং ফরম্যাট করবেন? হয়তো আপনি চান ১০-এর নিচের নম্বরের সামনে শূন্য থাকে (উদাহরণ: 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

এই রুবি স্ট্রিং ফরম্যাট ট্রিক দিয়ে অ্যালাইনড কলাম ও তৈরি করা যায়। ০-র বদলে ড্যাশ ব্যবহার করলে ইফেক্ট পাওয়া যায়:

রুবি স্ট্রিং ফরম্যাটিং: লিডিং জিরো, কলাম ও printf স্টাইল সহজে

বিকল্পভাবে, 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

উপসংহার

আপনি দেখেছেন রুবি এবং রেইলসে স্ট্রিং ফরম্যাটিং খুব সহজ, শুধু ফরম্যাট স্পেসিফায়ারগুলো বুঝলেই হয়।

আশা করি আউটপুট ফরম্যাটিং-এর দুনিয়ায় এই দ্রুত সফরটি আপনাকে ভালো লেগেছে! নিউজলেটার সাবস্ক্রাইব করতে ভুলবেন না 🙂

  1. সি প্রোগ্রাম: নম্বরকে স্ট্রিং-এ রূপান্তর করা (Number to String)

  2. C++-এ স্ট্রিংয়ের সেগমেন্ট গণনা (Number of Segments in a String)

  3. জাভাতে % ব্যবহার করে স্ট্রিং ফরম্যাটিং

  4. পাইথনে স্ট্রিং ফরম্যাটিং: % বনাম .format তুলনা