Formatter ক্লাস হল java.util প্যাকেজের একটি অংশ, যা জাভাতে ফর্ম্যাটেড আউটপুট তৈরি করার জন্য ব্যবহৃত হয়। এটি C-style ফর্ম্যাটিং সমর্থন করে এবং printf() এবং format() মেথড ব্যবহার করে আউটপুট কাস্টমাইজ করা যায়।
Formatter ক্লাসটি মূলত PrintStream বা PrintWriter এর মত স্ট্রিম আউটপুট ব্যবস্থার জন্য ব্যবহৃত হয়। তবে, আপনি Formatter ক্লাসের মাধ্যমে আউটপুট স্ট্রিং তৈরি করতে পারেন যা পরে System.out বা অন্যান্য আউটপুট স্ট্রিমে লেখা যায়।
Formatter Class এর প্রধান বৈশিষ্ট্য
- Formatted Output: এটি আউটপুট ফরম্যাট করার জন্য বিভিন্ন প্লেসহোল্ডার এবং ফরম্যাট স্পেসিফায়ার ব্যবহার করতে দেয়।
- Type-Safe Formatting: এটি টাইপ-সেফ আউটপুট ফরম্যাটিং সরবরাহ করে, যাতে ভুল টাইপের ডেটার কারণে সমস্যা না হয়।
- Locale Support: আউটপুটের ফরম্যাট লোকালাইজ করা যায়, যেমন মুদ্রা এবং তারিখ ফরম্যাট।
Formatter Class এর প্রধান মেথড
| মেথড | ব্যাখ্যা |
|---|---|
format(String format, Object... args) | ফরম্যাট করা আউটপুট স্ট্রিং রিটার্ন করে। |
printf(String format, Object... args) | ফরম্যাটেড আউটপুট প্রিন্ট করে। |
toString() | ফরম্যাট করা আউটপুট স্ট্রিং রিটার্ন করে। |
close() | Formatter ক্লাসের রিসোর্স বন্ধ করে। |
Formatter Class এর ব্যবহার
1. আউটপুট ফরম্যাটিং উদাহরণ:
import java.util.Formatter;
public class FormatterExample {
public static void main(String[] args) {
// Formatter অবজেক্ট তৈরি
Formatter formatter = new Formatter();
// বিভিন্ন ধরনের আউটপুট ফরম্যাটিং
formatter.format("Hello, %s! Your age is %d years old.", "Alice", 25);
System.out.println(formatter.toString());
// ফরম্যাটিংয়ের পরে Formatter ক্লোজ করা
formatter.close();
}
}
ব্যাখ্যা:
format()মেথডটি একটি ফরম্যাট স্ট্রিং এবং আর্গুমেন্ট নিয়ে আউটপুট তৈরি করে।%sব্যবহার করা হয়েছে স্ট্রিং ফরম্যাটের জন্য এবং%dব্যবহার করা হয়েছে পূর্ণসংখ্যা (integer) ফরম্যাটের জন্য।
আউটপুট:
Hello, Alice! Your age is 25 years old.
2. printf() মেথড ব্যবহার করে আউটপুট প্রিন্ট করা:
public class PrintfExample {
public static void main(String[] args) {
String name = "Bob";
int age = 30;
double salary = 55000.75;
// printf() ব্যবহার করে ফরম্যাটেড আউটপুট
System.out.printf("Name: %s, Age: %d, Salary: %.2f\n", name, age, salary);
}
}
ব্যাখ্যা:
printf()মেথড সরাসরি কনসোলে আউটপুট প্রিন্ট করে।%.2fব্যবহার করা হয়েছে ডেসিমাল ফরম্যাটে দুটি দশমিক সহ ভাসমান পয়েন্ট সংখ্যা (float) প্রদর্শনের জন্য।
আউটপুট:
Name: Bob, Age: 30, Salary: 55000.75
3. বিভিন্ন ডেটা টাইপের ফরম্যাটিং:
import java.util.Formatter;
public class MultiFormatExample {
public static void main(String[] args) {
Formatter formatter = new Formatter();
// ফরম্যাটিং এর বিভিন্ন উদাহরণ
formatter.format("Integer: %d\n", 123);
formatter.format("String: %s\n", "Hello World");
formatter.format("Floating Point: %.2f\n", 123.456);
formatter.format("Hexadecimal: %x\n", 255);
// ফরম্যাটেড আউটপুট
System.out.println(formatter.toString());
// Formatter ক্লোজ করা
formatter.close();
}
}
ব্যাখ্যা:
%d: পূর্ণসংখ্যা (Integer) ফরম্যাট%s: স্ট্রিং ফরম্যাট%.2f: ভাসমান পয়েন্ট সংখ্যা (Float) দুটি দশমিক সহ%x: হেক্সাডেসিমাল (Hexadecimal) সংখ্যা
আউটপুট:
Integer: 123
String: Hello World
Floating Point: 123.46
Hexadecimal: ff
4. Locale-Specific Formatting
import java.util.Formatter;
import java.util.Locale;
public class LocaleFormatterExample {
public static void main(String[] args) {
Formatter formatter = new Formatter();
// Locale ব্যবহার করে মুদ্রার ফরম্যাট
double amount = 123456.789;
// US Locale
formatter.format(Locale.US, "US Currency: %, .2f\n", amount);
// Germany Locale
formatter.format(Locale.GERMANY, "Germany Currency: %, .2f\n", amount);
// Display the result
System.out.println(formatter.toString());
// Formatter ক্লোজ করা
formatter.close();
}
}
ব্যাখ্যা:
Locale.USএবংLocale.GERMANYব্যবহার করে দেশের নির্দিষ্ট মুদ্রা ফরম্যাটে আউটপুট প্রদর্শন করা হয়েছে।
আউটপুট:
US Currency: 123, 456.79
Germany Currency: 123. 456,79
Formatter Class এর সুবিধা
- Flexible and Powerful Formatting: এটি ফরম্যাটিংয়ের জন্য একটি শক্তিশালী এবং নমনীয় উপায় প্রদান করে।
- Type-Safe: এটি টাইপ সেফ, অর্থাৎ আপনি নিশ্চিত থাকতে পারেন যে আর্গুমেন্টগুলির টাইপ ফরম্যাটের সাথে মেলে।
- Supports Various Data Types: এটি বিভিন্ন ধরনের ডেটা টাইপ যেমন ইন্টিজার, স্ট্রিং, ফ্লোট, ডাবল ইত্যাদি সঠিকভাবে ফরম্যাট করতে সক্ষম।
- Locale-Based Formatting: বিভিন্ন দেশে মুদ্রা এবং তারিখ ফরম্যাট করার সুবিধা দেয়।
Formatter Class এর সীমাবদ্ধতা
- Complexity in Handling Large Data: বড় ডেটার জন্য প্রক্রিয়া কিছুটা জটিল হতে পারে।
- Does Not Handle Custom Types: কাস্টম ডেটা টাইপের জন্য ফরম্যাটিং সীমাবদ্ধ।
Best Practices for Using Formatter
- Use Locale: দেশের নির্দিষ্ট ফরম্যাটের জন্য
Localeব্যবহার করুন। - Input Validation: ব্যবহারকারীর ইনপুট ফরম্যাট সঠিক কি না তা যাচাই করুন।
- Avoid Hardcoding Values: ফরম্যাটিং স্পেসিফায়ার এবং আর্গুমেন্টগুলি ডাইনামিকভাবে প্রদান করুন।
Formatter ক্লাস একটি শক্তিশালী টুল যা জাভাতে formatted output তৈরি করার জন্য ব্যবহৃত হয়। এটি printf(), format() এবং toString() মেথডের মাধ্যমে আউটপুট ফরম্যাটের জন্য ব্যবহৃত হয় এবং এটি টাইপ-সেফ, নমনীয় এবং বিভিন্ন ডেটা টাইপের জন্য কার্যকরী। এটি ব্যবহার করে বিভিন্ন ধরনের আউটপুট যেমন স্ট্রিং, পূর্ণসংখ্যা, ভাসমান পয়েন্ট সংখ্যা, এবং লোকালাইজড ফরম্যাটে মুদ্রা আউটপুট তৈরি করা যায়।
Read more