Java如何格式化包含数字信息的消息?

本示例说明如何使用java.text.MessageFormatclass格式化包含数字的消息。

package org.nhooo.example.text;

import java.text.MessageFormat;
import java.util.Locale;

public class MessageFormatNumber {
    public static void main(String[] args) {

        // 设置MessageFormat的语言环境。
        Locale.setDefault(Locale.US);

        // 对数字使用默认格式。
        String message = MessageFormat.format("This is a {0} and {1} numbers",
                10, 75);
        System.out.println(message);

        // 该行具有与上述相同的格式。
        message = MessageFormat.format("This is a {0,number} and {1,number} " +
                "numbers", 10, 75);
        System.out.println(message);

        // 格式化带有2个十进制数字的数字。
        message = MessageFormat.format("This is a formatted {0, number,#.##} " +
                "and {1, number,#.##} numbers", 25.7575, 75.2525);
        System.out.println(message);

        // 将数字格式设置为货币。
        message = MessageFormat.format("This is a formatted currency " +
                "{0,number,currency} and {1,number,currency} numbers",
                25.7575, 25.7575);
        System.out.println(message);

        // 以百分比格式设置数字。
        message = MessageFormat.format("This is a formatted percentage " +
                "{0,number,percent} and {1,number,percent} numbers", 0.10, 0.75);
        System.out.println(message);
    }
}

该程序的结果为以下几行:

This is a 10 and 75 numbers
This is a 10 and 75 numbers
This is a formatted  25.76 and  75.25 numbers
This is a formatted currency $10.00 and $75.00 numbers
This is a formatted percentage 10% and 75% numbers