Format percentage with MessageFormat class in Java

To format message with percentage fillers in Java, we use the MessageFormat class. The MessageFormat class gives us a way to produce concatenated messages which are not dependent on the language. The MessageFormat class extends the Serializable and Cloneable interfaces.

Declaration - The java.text.MessageFormat class is declared as follows −

public class MessageFormat extends Format

The  MessageFormat.format(pattern, params) method formats the message and fills in the missing parts using the objects in the params array matching up the argument numbers and the array indices.

The format method has two arguments, a pattern and an array of arguments. The pattern contains placeholder in {} curly braces which have a index that indicate the position in the array where the value of the argument is stored, a number argument indicating that the filler is a number and a percent parameter indicating that the number is percent representing percentage. They are as follows −

String message = MessageFormat.format("{0,number,percent} passed and {1,number,percent} failed", obj);

Let us see a program to format the message with percentage fillers −


 Live Demo

import java.text.MessageFormat;
public class Example {
   public static void main(String[] args) throws Exception {
      Object[] obj = new Object[] { new Double(40.56), new Double(59.44)};
      String message = MessageFormat.format("{0,number,percent} passed and {1,number,percent} ailed", obj);


The output is as follows −

4,056% passed and 5,944% failed