/*
*这个程序演示的是把数字格式化成指定Locale环境下的相关数字、货币、百分比表示的操作和格式化复合字符串的操作。
*这两种操作的思路和格式化日期和时间类似。
*/
package com.lwj.demo;
import java.text.*;
public class Number_MessageFormatDemo {
public static void main(String[] args) {
// Locale currentLocale=Locale.FRANCE;
// NumberFormat formatter=NumberFormat.getNumberInstance();//currentLocale);
// NumberFormat formatter=NumberFormat.getCurrencyInstance();
// NumberFormat formatter=NumberFormat.getPercentInstance();
DecimalFormatSymbols decimalFormatSymbols = DecimalFormatSymbols
.getInstance();// 用DecimalFormatSymbols类可以设置相关的符号,如下面的把人民币符号“¥”改为“人民币”
decimalFormatSymbols.setCurrencySymbol("人民币");
DecimalFormat formatter = new DecimalFormat("¤,###.##",
decimalFormatSymbols);// "¤,###.##"就是所谓的模式(pattern),¤表示以货币形式格式化数字。
String str = formatter.format(2514789.5685);
System.out.println(str);
// 以下演示的是格式化字符串的操作。
int fileCount = 1273;
String diskName = "MyDisk";
Object[] testArgs = { new Long(fileCount), diskName };// 这个对象数组testArgs是MessageFormat对象的format()所需要的
MessageFormat form = new MessageFormat(
"The disk /"{1}/" contains {0} file(s).");// "The disk /"{1}/" contains {0} file(s)."就是所谓的模式(pattern),其中的{1}、{0}在调用format()时用作为参数的对象数组testArgs所代换
str=form.format(testArgs);
System.out.println(str);
}
}
运行结果为:
人民币2,514,789.57
The disk "MyDisk" contains 1,273 file(s).