Formatter类是Java中用于格式化输出的核心工具,位于java.util包中,支持类似C语言printf的格式化语法,可精确控制数字、日期、字符串等输出形式。通过创建Formatter实例并结合StringBuilder等输出目标,调用format()方法实现格式化写入,常用转换符包括%s、%d、%f、%c、%t和%n,支持小数位数控制、对齐方式(如%10s右对齐、%-10s左对齐)、填充补零(如%08d)等技巧,适用于日志记录与报表生成;实际开发中常使用System.out.printf或String.format简化操作,二者底层均依赖Formatter实现,掌握其原理有助于处理复杂输出需求。

在Java中,Formatter 类是进行格式化输出的核心工具之一,它位于 java.util.Formatter 包中,支持类似于C语言 printf 风格的格式化字符串。通过它,我们可以精确控制数字、日期、字符串等类型的输出格式,适用于日志记录、报表生成等场景。
Formatter的基本用法
Formatter 的构造函数可以接收多种输出目标,比如 StringBuilder、OutputStream 或文件。最常见的是与 StringBuilder 结合使用,将格式化结果写入缓冲区。
基本语法如下:
创建 Formatter 实例:Formatter formatter = new Formatter(StringBuilder sb); 调用 format() 方法:传入格式化字符串和参数 通过 toString() 获取结果
示例代码:
立即学习“Java免费学习笔记(深入)”;
StringBuilder sb = new StringBuilder();Formatter fmt = new Formatter(sb);fmt.format("姓名:%s,年龄:%d,分数:%.2f", "张三", 20, 88.5);System.out.println(sb.toString()); // 输出:姓名:张三,年龄:20,分数:88.50
常用格式化转换符说明
Formatter 使用格式说明符来指定每个参数的输出形式,格式为:%[argument_index$][flags][width][.precision]conversion。以下是常用 conversion 类型:
%s:字符串输出 %d:十进制整数 %f:浮点数 %c:字符 %t:日期时间(需配合子格式,如 %tF 表示 yyyy-MM-dd) %n:换行符(平台无关)
例如,控制小数位数:
Python v2.4 中文手册 chm
Python v2.4版chm格式的中文手册,内容丰富全面,不但是一本手册,你完全可以把她作为一本Python的入门教程,教你如何使用Python解释器、流程控制、数据结构、模板、输入和输出、错误和异常、类和标准库详解等方面的知识技巧。同时后附的手册可以方便你的查询。
2 查看详情
fmt.format("价格:%.2f 元", 19.567); // 输出:价格:19.57 元
对齐与填充技巧
通过 flags 和 width 可以实现字段对齐和补白,提升输出可读性。
%10s:右对齐,总宽10个字符 %-10s:左对齐,总宽10个字符 %08d:数字不足8位时前面补0
示例:
fmt.format("|%10s|%10s|", "姓名", "成绩");fmt.format("%n|%10s|%10.2f|", "李四", 92.3);// 输出:// | 姓名| 成绩|// | 李四| 92.30|
结合 System.out.printf 使用
虽然 Formatter 是底层实现,但日常开发中更常使用 System.out.printf 或 String.format,它们内部都依赖 Formatter。
例如:
System.out.printf("当前时间:%tF %tT%n", System.currentTimeMillis(), System.currentTimeMillis());// 输出类似:当前时间:2024-04-05 14:30:22
这比直接创建 Formatter 更简洁,适合简单场景。
基本上就这些。掌握 Formatter 的格式语法,能让你在需要精准控制输出时游刃有余。虽然平时多用 printf 和 format 快捷方法,理解其背后的 Formatter 原理,有助于处理复杂或自定义输出需求。
以上就是在Java中如何使用Formatter格式化输出_Formatter类应用技巧的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1086704.html
微信扫一扫
支付宝扫一扫