Java格式化输出主要用String.format()、System.out.printf()和Formatter类,共用printf语法;printf适合直接打印,String.format用于生成字符串,Formatter支持自定义输出目标和Locale。

Java里格式化输出内容,主要靠 String.format()、System.out.printf() 和 Formatter 类,它们底层共用同一套格式化语法(类似C语言的printf),简洁又灵活。
用 printf 直接格式化打印
最常用、最直观的方式,适合调试和简单输出:
System.out.printf("姓名:%s,年龄:%d,身高:%.2f 米\n", "张三", 25, 1.756);- 输出:姓名:张三,年龄:25,身高:1.76 米
- %s 表示字符串,%d 表示十进制整数,%.2f 表示保留两位小数的浮点数
- 注意:printf 不自动换行,需手动加 \n;若要换行,也可用
System.out.println(String.format(...))
用 String.format 构造格式化字符串
当你需要把格式化结果存为字符串(比如拼接日志、生成SQL、返回API响应),而不是直接打印时用它:
String msg = String.format("订单号:%s,金额:¥%.2f,时间:%tF %tR", "ORD-2024-001", 99.5, new Date());- %tF 输出年-月-日(如 2024-05-20),%tR 输出24小时制时间(如 14:30)
- 返回的是字符串对象,可赋值、拼接、传参,更利于复用和测试
用 Formatter 做更精细的控制
适合需要写入文件、网络流或自定义输出目标的场景,支持指定 Locale 和输出目的地:
Python v2.4版chm格式的中文手册,内容丰富全面,不但是一本手册,你完全可以把她作为一本Python的入门教程,教你如何使用Python解释器、流程控制、数据结构、模板、输入和输出、错误和异常、类和标准库详解等方面的知识技巧。同时后附的手册可以方便你的查询。
立即学习“Java免费学习笔记(深入)”;
-
Formatter fmt = new Formatter();—— 默认输出到内部缓冲区 -
Formatter fmt = new Formatter(new FileWriter("log.txt"));—— 写入文件 fmt.format("用户ID:%d,操作:%s,耗时:%dms", 1001, "login", 42);- 可配合 Locale 使用,例如
new Formatter(Locale.US)控制数字/货币格式
常用格式符速查(重点记这几个)
不必死记全部,掌握高频项就够日常开发:
- %s:任意对象(自动调用 toString())
- %d:十进制整数(int、long 等)
-
%f:浮点数,
%.2f表示保留2位小数 - %c:单个字符
- %b:布尔值(true/false,null 也输出 false)
- %tF:日期(yyyy-MM-dd),%tT:时间(HH:mm:ss)
- %n:平台无关的换行符(比 \n 更安全)
基本上就这些。不复杂但容易忽略细节,比如忘记换行、小数位数没控制好、中文环境下日期格式异常——多试几次,熟悉了就顺手了。









