Skip to content
Related Articles

Related Articles

Improve Article

MessageFormat setFormatsByArgumentIndex() method in Java with Example

  • Last Updated : 22 Jan, 2020

The setFormatsByArgumentIndex method of java.text.MessageFormat class is used to set the array of new format element in the pattern of message format object by overriding the old pattern.

Syntax:

public void setFormatsByArgumentIndex(Format[] newFormats)

Parameter: This method takes an array of format element as a parameter for overriding the old pattern of message format object.

Return Value: This method has nothing to return.

Exception: This method throws NullPointerException if array of new format element is null.



Below are the examples to illustrate the setFormatsByArgumentIndex() method:

Example 1:




// Java program to demonstrate
// setFormatsByArgumentIndex() method
  
import java.text.*;
import java.util.*;
import java.io.*;
  
public class GFG {
    public static void main(String[] argv)
    {
        try {
            // creating and initializing  MessageFormat
            MessageFormat mf
                = new MessageFormat("{0, date, #}, {2, number, #.##}, {4, time}");
  
            // display the current message format object
            displayFormat(mf);
  
            // creating and initializing new Format object array
            Format[] format = { new SimpleDateFormat("YYYY-'W'ww-u"),
                                new DecimalFormat("10.5678") };
  
            // settting the new array of formats
            // in the pattern of MessageFormat object
            // using setFormatsByArgumentIndex() method
            mf.setFormatsByArgumentIndex(format);
  
            // display the Override MessageFormat object
            System.out.println();
            displayFormat(mf);
        }
        catch (NullPointerException e) {
            System.out.println("format array is null");
            System.out.println("Exception thrown : " + e);
        }
    }
  
    // Defining displayFormat method
    public static void displayFormat(MessageFormat mf)
    {
  
        // display the result
        System.out.println("pattern : "
                           + mf.toPattern());
  
        // getting all format
        // used in MessageFormat Object
        // using getFormats() method
        Format[] formats = mf.getFormats();
  
        // display the result
        System.out.println("Required Formats are : ");
        for (int i = 0; i < formats.length; i++)
            System.out.println(formats[i]);
    }
}
Output:
pattern : {0, date, #}, {2, number, #0.##}, {4, time}
Required Formats are : 
java.text.SimpleDateFormat@403
java.text.DecimalFormat@674fc
java.text.SimpleDateFormat@8400729

pattern : {0, date, YYYY-'W'ww-u}, {2, number, #0.##}, {4, time}
Required Formats are : 
java.text.SimpleDateFormat@d21287d2
java.text.DecimalFormat@674fc
java.text.SimpleDateFormat@8400729

Example 2:




// Java program to demonstrate
// setFormatsByArgumentIndex() method
  
import java.text.*;
import java.util.*;
import java.io.*;
  
public class GFG {
    public static void main(String[] argv)
    {
        try {
            // creating and initializing  MessageFormat
            MessageFormat mf
                = new MessageFormat("{0, date, #}, {2, number, #.##}, {4, time}");
  
            // display the current message format object
            displayFormat(mf);
  
            // creating and initializing new Format object array
            Format[] format = { new SimpleDateFormat("YYYY-'W'ww-u"),
                                new DecimalFormat("10.5678") };
  
            // settting the new array of formats
            // in the pattern of MessageFormat object
            // using setFormatsByArgumentIndex() method
            mf.setFormatsByArgumentIndex(null);
  
            // display the Override MessageFormat object
            System.out.println();
            displayFormat(mf);
        }
        catch (NullPointerException e) {
            System.out.println("\nformat array is null");
            System.out.println("Exception thrown : " + e);
        }
    }
  
    // Defining displayFormat method
    public static void displayFormat(MessageFormat mf)
    {
  
        // display the result
        System.out.println("pattern : "
                           + mf.toPattern());
  
        // getting all format
        // used in MessageFormat Object
        // using getFormats() method
        Format[] formats = mf.getFormats();
  
        // display the result
        System.out.println("Required Formats are : ");
        for (int i = 0; i < formats.length; i++)
            System.out.println(formats[i]);
    }
}
Output:
pattern : {0, date, #}, {2, number, #0.##}, {4, time}
Required Formats are : 
java.text.SimpleDateFormat@403
java.text.DecimalFormat@674fc
java.text.SimpleDateFormat@8400729

format array is null
Exception thrown : java.lang.NullPointerException

Reference: https://docs.oracle.com/javase/9/docs/api/java/text/MessageFormat.html#setFormatsByArgumentIndex-java.text.Format:A-

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :