MessageFormat setFormat() method in Java with Example

Last Updated : 22 Jan, 2020
The setFormats() method of java.text.MessageFormat class is used to set the new format element at the particular index in the pattern of this message format object. Syntax:
public void setFormat(int formatElementIndex,
                      Format newFormat)
Parameters: This method takes the following argument as a parameter:
  • formatElementIndex: this is the particular index where new format element is going to be placed.
  • newFormat: this is the new Format element which is going to be placed.
Return Value: This method has nothing to return. Exception : This method throws ArrayIndexOutOfBoundsException if the formatElementIndex is out of bound. Below are the examples to illustrate the setFormat() method: Example 1: Java
// Java program to demonstrate
// setFormats() method

import java.text.*;
import java.util.*;
import java.io.*;

public class GFG {
    public static void main(String[] argv)
    {
        // creating and initializing  MessageFormat
        MessageFormat mf
            = new MessageFormat("{0, date, #}, {0, number, #.##}, {0, time}");

        // display the current pattern
        System.out.println("old pattern : "
                           + mf.toPattern());

        // getting all the format element
        // used in MessageFormat Object
        Format[] formats = mf.getFormats();

        // setting the new format element
        // at particular index
        // using setFormat() method
        for (int i = 0; i < formats.length; i++)
            mf.setFormat(i, formats[1]);

        // display the result
        System.out.println("\nnew pattern : "
                           + mf.toPattern());
    }
}
Output:
old pattern : {0,date, #}, {0,number, #0.##}, {0,time}

new pattern : {0,number, #0.##}, {0,number, #0.##}, {0,number, #0.##}
Example 2: Java
// Java program to demonstrate
// setFormats() 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, #}, {0, number, #.##}, {0, time}");

            // display the current pattern
            System.out.println("old pattern : "
                               + mf.toPattern());

            // getting all the format element
            // used in MessageFormat Object
            Format[] formats = mf.getFormats();

            // setting the new format element
            // at particular index
            // using setFormat() method
            for (int i = 0; i <= formats.length + 1; i++)
                mf.setFormat(-1, formats[1]);

            // display the result
            System.out.println("\nnew pattern : "
                               + mf.toPattern());
        }
        catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("\narray is out of bound");
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
old pattern : {0,date, #}, {0,number, #0.##}, {0,time}

array is out of bound
Exception thrown : java.lang.ArrayIndexOutOfBoundsException: -1
Reference: https://docs.oracle.com/javase/9/docs/api/java/text/MessageFormat.html#setFormat-int-java.text.Format-
Comment