Java格式化输出主要用String.format()、System.out.printf()和Formatter类,共用printf语法;printf适合直接打印,String.format用于生成字符串,Formatter支持自定义输出目标和Locale。
Java里格式化输出内容,主要靠 String.format()、System.out.printf() 和 Formatter 类,它们底层共用同一套格式化语法(类似C语言的printf),简洁又灵活。
最常用、最直观的方式,适合调试和简单输出:
System.out.printf("姓名:%s,年龄:%d,身高:%.2f 米\n", "张三", 25, 1.756);System.out.println(String.format(...))
当你需要把格式化结果存为字符串(比如拼接日志、生成SQL、返回API响应),而不是直接打印时用它:
String msg = String.format("订单号:%s,金额:¥%.2f,时间:%tF %tR", "ORD-2025-001", 99.5, new Date());适合需要写入文件、网络流或自定义输出目标的场景,支持指定 Locale 和输出目的地:
Formatter fmt = new Formatter(); —— 默认输出到内部缓冲区Formatter fmt = new Formatter(new FileWriter("log.txt")); —— 写入文件fmt.format("用户ID:%d,操作:%s,耗时:%dms", 1001, "login"
, 42);new Formatter(Locale.US) 控制数字/货币格式不必死记全部,掌握高频项就够日常开发:
%.2f 表示保留2位小数基本上就这些。不复杂但容易忽略细节,比如忘记换行、小数位数没控制好、中文环境下日期格式异常——多试几次,熟悉了就顺手了。