首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.11  使用MessageFormat格式化字符串

使用一个对象的toString方法可以将对象的内部状态转换成一个字符串表示。当创建一个类的toString方法时,通常需要将一些类变量转变成字符串值并执行一些数据转换。此外,在其他很多时候编程人员需要格式化文本。这种情况下,Java开发人员可以编写他们自己的方法或使用java.text.Format子类(它们自从JDK1.1起就已出现):

ChoiceFormat

将一个格式附加在一个数字范围上,常用来表示字符串。

DateFormat

用于格式化和分析日期和时间值。

DecimalFormat

用于格式十进制数。

MessageFormat

提供一种语言无关的方式来组装消息,它允许你在运行时刻用指定的参数,如format 字符串中的值来添加内容。MessageFormat类将根据格式化字符串在内部使用其他Format类来产生结果,因此通常没有必要直接使用另一种Format类。格式化字符串使用花括号{和}作为特殊的字符从参数列表中选择项目并向它们应用格式。可以如下例所示的那样调用静态format方法:

import java.text.MessageFormat;

Object[] dataArray = new Object[] {

"Petunia",

new java.util.Date(),

new Double(13.685)

};

String result = MessageFormat.format(

"{0} weighed {2,number,##.#} kg on {1,date}",

dataArray);

System.out.println(result);

此代码产生如下的输出:

Petunia weighed 13.7 kg on Dec 5, 2004

上面的格式化String表明将检索数组的第一个元素、第三个元素(在应用数字格式之后)和第二个元素(在应用了默认的日期格式后)。这些值和剩下的格式化字符串连接在一起。可参考MessageFormat类的相关文档来了解语法和转换选项的完整描述。另外,还可以使用MessageFormat类将文本解析成变量(JavaDoc中有相关说明)。

在下一节提到的格式化类中使用一种完全不同的格式化字符串,它使用的语法与MessageFormat类所用的语法不同(并且更难理解)。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论