Custom Number Formats তৈরি করা

Number এবং Currency Formatting - জাভা ইন্টারন্যাশনালাইজেশন (Java Internalization) - Java Technologies

261

Java Internationalization (i18n) এর একটি গুরুত্বপূর্ণ দিক হল number formatting—বিশেষ করে বিভিন্ন ভাষা এবং অঞ্চলের জন্য সংখ্যার প্রদর্শন কাস্টমাইজ করা। Java এ, আপনি NumberFormat ক্লাস ব্যবহার করে সংখ্যাগুলির প্রদর্শন স্টাইল কাস্টমাইজ করতে পারেন, যাতে এটি প্রতিটি ব্যবহারকারীর ভাষা বা এলাকার জন্য উপযুক্ত হয়।

যেহেতু বিভিন্ন দেশে সংখ্যা লেখার রীতি আলাদা, তাই আপনি locale-specific বা custom সংখ্যা ফরম্যাট তৈরি করতে পারেন। উদাহরণস্বরূপ:

  • কিছু দেশে ডেসিমাল পয়েন্ট হিসেবে "," এবং হাজারের বিভাজক হিসেবে . ব্যবহৃত হয়।
  • অন্য দেশে "," হাজারের বিভাজক হিসেবে এবং . ডেসিমাল পয়েন্ট হিসেবে ব্যবহৃত হয়।

Java NumberFormat ক্লাস:

Java এ NumberFormat ক্লাসটি java.text প্যাকেজের অন্তর্গত এবং এটি সংখ্যা ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়। এই ক্লাসটি ব্যবহারকারীদের জন্য একটি নম্বর বা মূল্যকে তাদের স্থানীয় রীতিতে ফরম্যাট করতে সক্ষম করে।

NumberFormat এর প্রধান মেথডসমূহ:

  1. getInstance():
    • এটি একটি সাধারণ সংখ্যা ফরম্যাটারের জন্য ব্যবহৃত হয়।
  2. getCurrencyInstance():
    • এটি মুদ্রা ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়।
  3. getPercentInstance():
    • এটি শতাংশ ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়।
  4. setMaximumFractionDigits() এবং setMinimumFractionDigits():
    • এগুলি ব্যবহৃত হয় দশমিক স্থান সংখ্যা নির্ধারণ করতে।

Custom Number Formats তৈরি করা:

আপনি Java তে NumberFormat ক্লাসের setMinimumFractionDigits() এবং setMaximumFractionDigits() মেথড ব্যবহার করে কাস্টম number formatting করতে পারেন। এছাড়াও, আপনি DecimalFormat ব্যবহার করে custom patterns তৈরি করতে পারেন।


Custom Number Format উদাহরণ:

1. Locale-Specific Number Format (Using Locale):

import java.text.NumberFormat;
import java.util.Locale;

public class CustomNumberFormatExample {
    public static void main(String[] args) {
        // Locale.setDefault(Locale.US);
        Locale locale = new Locale("en", "US");
        
        // NumberFormat instance using US locale
        NumberFormat numberFormat = NumberFormat.getInstance(locale);
        double number = 1234567.89;
        
        // Format the number according to US locale
        System.out.println("Formatted number (US): " + numberFormat.format(number));
    }
}

আউটপুট:

Formatted number (US): 1,234,567.89

2. Custom Number Formatting with DecimalFormat:

import java.text.DecimalFormat;

public class CustomDecimalFormat {
    public static void main(String[] args) {
        double number = 1234567.89123;
        
        // Custom pattern for decimal formatting
        DecimalFormat decimalFormat = new DecimalFormat("#,###.00"); // Comma as thousand separator and 2 decimal points
        
        // Format the number using custom pattern
        String formattedNumber = decimalFormat.format(number);
        System.out.println("Formatted number (Custom pattern): " + formattedNumber);
    }
}

ব্যাখ্যা:

  • DecimalFormat ব্যবহার করে ,###.00 প্যাটার্নে সংখ্যাকে ফরম্যাট করা হচ্ছে। এতে # মানে শূন্য হতে পারে এবং 0 মানে যে কোনো ক্ষেত্রেই একটি সংখ্যা থাকতে হবে।
  • 1234567.89123 সংখ্যাটি 1,234,567.89 হিসেবে প্রদর্শিত হবে।

আউটপুট:

Formatted number (Custom pattern): 1,234,567.89

3. Locale-Specific Currency Formatting:

import java.text.NumberFormat;
import java.util.Locale;

public class CurrencyFormatExample {
    public static void main(String[] args) {
        double price = 12345.67;

        // Locale for Germany
        Locale locale = Locale.GERMANY;
        
        // Currency format using Locale
        NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(locale);
        
        // Format the currency value
        String formattedCurrency = currencyFormat.format(price);
        System.out.println("Formatted currency (Germany): " + formattedCurrency);
    }
}

ব্যাখ্যা:

  • এখানে NumberFormat.getCurrencyInstance(locale) ব্যবহার করে, জার্মানির জন্য মুদ্রা ফরম্যাট করা হয়েছে।
  • জার্মানির জন্য ফরম্যাট €12,345.67 হবে, যেখানে সিম্বল জার্মানির মুদ্রার প্রতীক।

আউটপুট:

Formatted currency (Germany): 12.345,67 €

4. Custom Fraction Digits with DecimalFormat:

import java.text.DecimalFormat;

public class CustomFractionDigits {
    public static void main(String[] args) {
        double number = 98765.4321;
        
        // Decimal format with custom fraction digits
        DecimalFormat decimalFormat = new DecimalFormat("#,###.###");
        
        // Setting maximum and minimum fraction digits
        decimalFormat.setMinimumFractionDigits(2);
        decimalFormat.setMaximumFractionDigits(4);
        
        String formattedNumber = decimalFormat.format(number);
        System.out.println("Formatted number with custom fraction digits: " + formattedNumber);
    }
}

ব্যাখ্যা:

  • এখানে DecimalFormat ব্যবহার করে fraction digits এর minimum এবং maximum সংখ্যা সেট করা হয়েছে।
  • setMinimumFractionDigits(2) এবং setMaximumFractionDigits(4) মেথডগুলো দ্বারা ফরম্যাটের দশমিক স্থান সীমাবদ্ধ করা হয়েছে।

আউটপুট:

Formatted number with custom fraction digits: 98,765.4321

Custom Number Formatting এর প্রয়োগ:

  1. Locale-Specific Formatting:
    • যদি আপনার অ্যাপ্লিকেশনটি বিভিন্ন দেশের মধ্যে ব্যবহৃত হয়, তবে এটি locale-specific সংখ্যা এবং মুদ্রা ফরম্যাট করতে সহায়ক।
  2. Custom Currency and Decimal Patterns:
    • DecimalFormat ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের জন্য কাস্টম মুদ্রা ফরম্যাট এবং দশমিক স্থান নির্ধারণ করতে পারেন।
  3. Performance Optimization:
    • কাস্টম ফরম্যাটিং সিস্টেম ব্যবহার করে আপনি অ্যাপ্লিকেশনটির কর্মক্ষমতা উন্নত করতে পারেন, বিশেষত যখন সংখ্যার গুণমান বা ভিন্ন-ভিন্ন অঞ্চলের ভিত্তিতে তথ্য প্রদর্শন করা হয়।

  • Java-তে custom number formats তৈরি করার জন্য DecimalFormat এবং NumberFormat ক্লাসগুলি ব্যবহার করা হয়। এটি বিভিন্ন locale বা region-specific ফরম্যাট তৈরি করার জন্য উপকারী।
  • আপনি decimal places, currency symbols, এবং number separators কাস্টমাইজ করতে পারেন যা আপনার অ্যাপ্লিকেশনকে বিশ্বের বিভিন্ন অঞ্চলের জন্য উপযোগী করে তোলে।

Java Internationization (i18n) এর জন্য এই কাস্টম ফরম্যাটিং খুবই গুরুত্বপূর্ণ, কারণ এটি ব্যবহারকারীদের স্থানীয় ভাষা এবং সংস্কৃতির জন্য ডেটা প্রদর্শন করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...