驯服Tiger: 格式化输出 - 编程入门网
驯服Tiger: 格式化输出时间:2011-01-31 John ZukowskiJ2SE 1.4 版原来的计划是包括对格式化输出的支持。可能由于时间限制及这个功能对新版本的发布不起决定作用的缘故,在发表的版本中没有加入这些功能。现在有了 Tiger,对打印带格式的字符串有了内在支持。 对于那些从一开始就使用 Java 编程而从没有接触过 C 的人,或者,对那些对 C 没有足够了解的人,格式化字符串是一些古怪的文本串,它们指定一组变量的输出特性。不是用加号将字符串连接在一起(如 firstName + " " + lastName ),而是提供一个字符串描述输出,并提供参数以在方法调用结束时,替换字符串中的占位符: String s = String.format("%1$s %2$s", firstName, lastName) 。 Formatter 类 首先,让我们分析新的 java.util.Formatter 类。您可能不会经常直接使用这个类,但是它提供了所要进行的格式化的内部机制。在这个类的 Javadoc 中,会看到一个描述所支持的格式化选项的表。这些选项的范围从以类似 %7.4f 这样的格式指定浮点数的精度和位数,到格式化时间的 %tT ,到格式化第三个参数 %3$s 。 用 Formatter 格式化输出分为两步:创建一个 Appendable 对象以存储输出,用 format() 方法将带格式的内容放到这个对象中。下面列出了 Appendable 接口的实现器: BufferedWriter CharArrayWriter CharBuffer FileWriter FilterWriter LogStream OutputStreamWriter PipedWriter PrintStream PrintWriter StringBuffer StringBuilder StringWriter Writer 驯服Tiger: 格式化输出(2)时间:2011-01-31 John Zukowski在使用 Formatter 类时,可以将实现了这个接口的对象传递给构造函数 Formatter 以把它作为目标。大多数这种类看起来很相似,除了 StringBuilder 类。 StringBuilder 与 StringBuffer 类几乎相同,只有一个大的区别:它不是线程安全的。如果知道要在单线程中构建字符串,就使用 StringBuilder 。如果构建过程会跨越多个线程,则使用 StringBuffer 。清单 1 显示了通常如何开始使用 Formatter : 清单 1. formatter 的典型用法
创建了 Formatter 类后,用格式化字符串和参数调用其 format() 方法。如果需要使用与传递给出构造函数的不同的 Locale 作为格式化输出的一部分,还可以向 format() 方法传递一个 Locale 对象。清单 2 显示了两种不同的 format() : 清单 2. Formatter 的 format() 方法
如果希望得到精度为 10 位数字的 Pi 值,清单 3 中的代码会将这个值放到 StringBuilder 中并打印输出。打印 formatter 对象将显示 Appendable 对象的内容。 清单 3. 演示一个 Formatter
不要忘记用 -source 1.5 选项编译,否则编译器不会识别变量参数列表。因为格式化输出并将它发送给控制台是一项常见的任务,所以对这种操作提供了方便的方法。我们将在下面对此进行讨论。 PrintStream 支持 PrintStream 类中定义了常见的、分别用于写入标准输出和 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |