Java格式化输出依靠System.out.printf()和String.format(),基于Formatter类,使用%开头的格式说明符控制类型、宽度、精度等;常用如%d(整数)、%f(浮点数)、%.2f(2位小数)、%s(字符串)、%c(字符)、%b(布尔值)、%tY(年份)。

Java中格式化输出数据主要依靠System.out.printf()和String.format(),它们共享同一套格式化语法,底层基于java.util.Formatter类。核心是使用格式说明符(format specifier),以%开头,控制类型、宽度、精度和对齐方式。
常用格式说明符及其含义
格式说明符基本结构为:%[参数索引$][标志][宽度][.精度]转换符,其中方括号部分可选。常用转换符包括:
-
%d:十进制整数(int、long等) -
%f:浮点数(默认6位小数) -
%.2f:保留2位小数的浮点数 -
%s:字符串 -
%c:字符 -
%b:布尔值(true/false) %tY-%:复用前一个日期参数,输出“年-月-日”(需配合 java.time或Date)
控制对齐与补零
默认右对齐,可通过标志调整:
-
%-10s:左对齐,总宽10,不足补空格 -
%05d:右对齐,总宽5,不足补前导零(如42→00042) -
%+d:显式输出正负号(如+123、-45) -
%,d:添加千位分隔符(如1000000→1,000,000)
实际打印示例
以下代码演示常见场景:
立即学习“Java免费学习笔记(深入)”;
double price = 29.99;
int quantity = 3;
String item = "Book";
System.out.printf("Item: %-10s Qty: %2d Price: $%.2f Total: $%.2f%n", item, quantity, price, price * quantity);
输出为:Item: Book Qty: 3 Price: $29.99 Total: $89.97
注意:%n是平台无关的换行符,推荐替代\n。
格式化字符串再利用
用String.format()生成格式化字符串,适合拼接、日志或模板场景:
String msg = String.format("User %s logged in at %tF %logger.info(msg);或return msg;- 支持参数重用(如
%表示重复使用上一个时间参数)











