关于Java中的String.format()方法

作者在 2008-02-02 10:39:32 发布以下内容
        这两天在学习JSF Tutorial上的自定义组件,发现一个方法以前一直没用过,即String.format()方法。刚开始不怎么懂,后来边看程序边看API文档,明白了一些。
        我们先来看下API文档中关于此方法的说明:

format

public static String format(Locale l,
                            String format,
                            Object... args)
使用指定的语言环境、格式字符串和参数返回一个格式化字符串。

参数:
l - 格式化过程中要应用的语言环境。如果 lnull,则不进行本地化。
format - 格式字符串
args - 格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为 0。参数的最大数目受 Java Virtual Machine Specification 所定义的 Java 数组最大维度的限制。有关 null 参数的行为依赖于转换
返回:
一个格式化字符串
抛出:
IllegalFormatException - 如果格式字符串中包含非法语法、与给定参数不兼容的格式说明符,格式字符串给定的参数不够,或存在其他非法条件。有关所有可能的格式化错误的规范,请参阅 formatter 类规范的详细信息 一节。
NullPointerException - 如果 formatnull

        我觉得,比较重要的是后两个参数,即String format和Object...args。这个String format代表的就是格式字符串。格式字符串:产生格式化输出的每个方法都需要格式字符串和参数列表。格式字符串是一个String, 它可以包含固定文本和一个或多个嵌入的格式说明符。以我之前发的一个JSF自定义组件中的例子来说明。

       

String utput = String.format("It is now %tr on %tD.", currentDateTime, currentDateTime);

        这里,"It is now %tr on %tD."就是一个格式字符串。这句代码包含了两个参数,两个参数都是currentDateTime。如何确定它们的位置呢?就是在格式字符串里面,%tr, %tD确定的。与%紧连着的的字符是说明应该如何格式化参数的字符。这里,t代表日期时间转换的前缀,r和D分别表示将时间和日期按一定格式输出。这里我们使用参数时使用的是一种默认方法。第一个%会寻找格式字符串后面的第一个参数,第二个%会寻找第二个参数,依此类推。
        使用该方法有一个好处是可以在java文件中向页面写带有参数的html标签,这在JSF自定义输入标签中常用。例如:

String utput = String.format("<input type='text' name='%s' value='%s' >", name, value);

        这里,我们就像页面写了一个html的文本输入标签。它的name属性由格式字符串后面的第一个参数name确定,value属性由第二个参数value确定。%s可以理解为参数为字符串对象。
        关于格式字符串具体的资料,还请查阅相关文档。

Java | 阅读 9528 次
文章评论,共0条
游客请输入验证码