NumberFormat类在国际化中的应用

来源:互联网 发布:世界城市经纬度数据库 编辑:程序博客网 时间:2024/06/03 18:29

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

0 0
原创粉丝点击