Merlin的魔力: 格局化数值和钱币[Java编程]
本文“Merlin的魔力: 格局化数值和钱币[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
java.text 包答应通过与特定语言无关的方法格局化文本消息、日期和数值.很多人配合 MessageFormat 类利用资源包来为用户本地化消息.更多的人仿佛利用 DateFormat 和 SimpleDateFormat 类来操作日期字符串,既用于输入也用于输出.最少见的用法仿佛是利用 NumberFormat 类及其相关的子类 DecimalFormat 和 ChoiceFormat .在本月的谈论中,我们将研究一下这三个未得到充分操纵的类以及 Currency 类,看看 J2SE 1.4 已经变得有多么的环球化.
数值格局化基类:NumberFormat
假如您来自美国,您会在较大的数值中间安排逗号来表示千和百万(等等,每三个数值利用一个逗号).关于浮点数,您将在整数部份和小数部份之间安排小数点.关于金钱,钱币标记 $ 放在金额的前面.假如 您历来没有到过美国以外的地方,大概就不会关心用元(¥)来格局化的日本钱币,用英镑(£)来格局化的英国钱币,大概用欧元(€)来表示的其他欧洲国家的钱币.
关于那些我们确切关心的钱币,我们可以利用 NumberFormat 及其相关的类来格局化它们.开辟人员利用 NumberFormat 类来读取用户输入的数值,并格局化将要显示给用户看的输出.
与 DateFormat 近似, NumberFormat 是一个抽象类.您永久不会成立它的实例――相反,您老是利用它的子类.固然可以通过子类的构造函数直接成立子类,不过 NumberFormat 类供应了一系列 get XXXInstance() 办法,用以得到差别范例的数值类的特定区域版本.这样的办法共有五个:
getCurrencyInstance()
getInstance()
getIntegerInstance()
getNumberInstance()
getPercentInstance()
具体利用哪一个办法取决于您想要显示的数值范例(大概想要承受的输入范例).每个办法都供应了两个版本――一个版本实用于当前区域,另一个版本承受一个 Locale作为参数,以便大概地指定一个差别的区域.
在 J2SE 1.4中, NumberFormat 新增的内容是 getIntegerInstance()、 getCurrency() 和 setCurrency() 办法.下面让我们研究一下新的 getIntegerInstance() 办法.稍后将会探究 get/set 钱币办法.
利用 NumberFormat 的基本历程是得到一个实例并利用该实例.挑选得当的实例的确需求费一番考虑 .普通您不但愿利用通用的 getInstance 大概 getNumberInstance() 版本 ,因为您不切当知道您将会得到什么.相反 ,您会利用像 getIntegerInstance() 这样的办法 ,因为您但愿把某些内容显示为整数而不需求任何小数值 .清单1展示了这一点 ,我们在此中把数值 54321 显示为合适于美国和德国的格局.
清单 1. 利用 NumberFormat
import java.text.*;
import java.util.*;
public class IntegerSample {
public static void main(String args[]) {
int amount = 54321;
NumberFormat usFormat =
NumberFormat.getIntegerInstance(Locale.US);
System.out.println(usFormat.format(amount));
NumberFormat germanFormat =
NumberFormat.getIntegerInstance(Locale.GERMANY);
System.out.println(germanFormat.format(amount));
}
}
运行该代码将产生如清单2所示的输出.注意第一种格局(美国)中的逗号脱离符和第二种格局中的点号脱离符.
清单 2. NumberFormat 输出
54,321
54.321
以上是“Merlin的魔力: 格局化数值和钱币[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |