Master message formatting, MessageFormat class, formatting dates, times, numbers, currency, percentages, and locale-specific formatting for the OCP 21 exam.
Table of Contents
1. Message Formatting
The MessageFormat class provides a way to produce concatenated messages with placeholders.
1.1 Using MessageFormat
Example:
import java.text.MessageFormat;
// Simple formatting
String pattern = "Hello {0}, you have {1} messages";
String message = MessageFormat.format(pattern, "Alice", 5);
// "Hello Alice, you have 5 messages"
// With locale
MessageFormat mf = new MessageFormat(pattern, Locale.FRANCE);
String messageFR = mf.format(new Object[]{"Alice", 5});
// Format with different types
String pattern2 = "Name: {0}, Age: {1}, Salary: {2,number,currency}";
String result = MessageFormat.format(pattern2, "Bob", 30, 50000);
2. Date Formatting
2.1 DateFormat and SimpleDateFormat
Example:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
Date date = new Date();
// Using DateFormat
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
String formatted = df.format(date);
// Using SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formatted2 = sdf.format(date);
// With locale
SimpleDateFormat sdfFR = new SimpleDateFormat("dd MMMM yyyy", Locale.FRANCE);
String formattedFR = sdfFR.format(date);
3. Time Formatting
3.1 Formatting Time
Example:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
Date date = new Date();
// Time formatting
DateFormat tf = DateFormat.getTimeInstance(DateFormat.FULL, Locale.US);
String time = tf.format(date);
// Date and time
DateFormat dtf = DateFormat.getDateTimeInstance(
DateFormat.FULL, DateFormat.FULL, Locale.US);
String dateTime = dtf.format(date);
// Custom format
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String time2 = sdf.format(date);
4. Number Formatting
4.1 NumberFormat
Example:
import java.text.NumberFormat;
import java.util.Locale;
double number = 1234567.89;
// Number formatting
NumberFormat nf = NumberFormat.getInstance(Locale.US);
String formatted = nf.format(number); // "1,234,567.89"
NumberFormat nfFR = NumberFormat.getInstance(Locale.FRANCE);
String formattedFR = nfFR.format(number); // "1 234 567,89"
// Integer formatting
NumberFormat intFormat = NumberFormat.getIntegerInstance(Locale.US);
String intFormatted = intFormat.format(1234567); // "1,234,567"
5. Currency Formatting
5.1 Currency and Percentage Formatting
Example:
import java.text.NumberFormat;
import java.util.Locale;
double amount = 1234.56;
double percentage = 0.15;
// Currency formatting
NumberFormat currency = NumberFormat.getCurrencyInstance(Locale.US);
String currencyFormatted = currency.format(amount); // "$1,234.56"
NumberFormat currencyFR = NumberFormat.getCurrencyInstance(Locale.FRANCE);
String currencyFRFormatted = currencyFR.format(amount); // "1 234,56 €"
// Percentage formatting
NumberFormat percent = NumberFormat.getPercentInstance(Locale.US);
String percentFormatted = percent.format(percentage); // "15%"
NumberFormat percentFR = NumberFormat.getPercentInstance(Locale.FRANCE);
String percentFRFormatted = percentFR.format(percentage); // "15 %"
6. Exam Key Points
Critical Concepts for OCP 21 Exam:
- MessageFormat: Format messages with placeholders
- Placeholders: {0}, {1}, etc. for arguments
- DateFormat: Format dates and times
- SimpleDateFormat: Custom date/time formatting
- NumberFormat: Format numbers, currency, percentages
- getCurrencyInstance(): Format as currency
- getPercentInstance(): Format as percentage
- getInstance(): Format as number
- Locale-specific: Formatting varies by locale
- parse(): Parse formatted strings back to objects
0 Comments