欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

NumberFormat类在国际化中的应用

程序员文章站 2022-05-24 10:53:48
...

1 NumberFormat类简介

NumberFormat包含了format和parse方法,其中format用于将数值格式化成字符串,parse用于将字符串解析成数值。


2 NumberFormat的常用方法

getCurrencyInstance:返回默认Locale的货币格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的货币格式器。
getIntegerInstance:返回默认Locale的整数格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的整数格式器。
getNumberInstance:返回默认Locale的通用数值格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的通用数值格式器。
getPercentInstance:返回默认Locale的百分数格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的百分数格式器。


3 代码示例

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

public class NumberFormatTest
{
	public static void main(String[] args)
	{
		// 需要被格式化的数字
		double db = 1234000.567;
		// 创建四个Locale,分别代表中国、日本、德国、美国、法国
		Locale[] locales = {Locale.CHINA, Locale.JAPAN
			, Locale.GERMAN,  Locale.US,Locale.FRANCE};
		NumberFormat[] nf = new NumberFormat[15];
		// 为上面五个Locale创建15个NumberFormat对象
		// 每个Locale分别有通用数值格式器、百分比格式器、货币格式器
		for (int i = 0 ; i < locales.length ; i++)
		{
			nf[i * 3] = NumberFormat.getNumberInstance(locales[i]);
			nf[i * 3 + 1] = NumberFormat.getPercentInstance(locales[i]);
			nf[i * 3 + 2] = NumberFormat.getCurrencyInstance(locales[i]);
		}
		for (int i = 0 ; i < locales.length ; i++)
		{
			String tip = i == 0 ? "----中国的格式----" :
				i == 1 ? "----日本的格式----" :
				i == 2 ? "----德国的格式----" :
				i == 3 ?"----美国的格式----" : "----法国的格式----";
			System.out.println(tip);
			System.out.println("通用数值格式:"
				+ nf[i * 3].format(db));
			System.out.println("百分比数值格式:"
				+ nf[i * 3 + 1].format(db));
			System.out.println("货币数值格式:"
				+ nf[i * 3 + 2].format(db));
		}
	}
}


 
4 运行结果

----中国的格式----
通用数值格式:1,234,000.567
百分比数值格式:123,400,057%
货币数值格式:¥1,234,000.57
----日本的格式----
通用数值格式:1,234,000.567
百分比数值格式:123,400,057%
货币数值格式:¥1,234,001
----德国的格式----
通用数值格式:1.234.000,567
百分比数值格式:123.400.057%
货币数值格式:¤ 1.234.000,57
----美国的格式----
通用数值格式:1,234,000.567
百分比数值格式:123,400,057%
货币数值格式:$1,234,000.57
----法国的格式----
通用数值格式:1?234?000,567
百分比数值格式:123?400?057 %
货币数值格式:1?234?000,57