string.format() 是 java 中用于格式化输出的静态方法,通过 string 类直接调用,返回格式化字符串而非直接输出,支持多种占位符和本地化格式,适用于日志、sql 等场景,并可封装为自定义 static 工具方法。

Java 中利用 static 方法进行格式化输出,核心是使用 String.format() —— 这是一个 String 类提供的 静态方法,无需创建实例,直接通过类名调用,符合“利用 static 方法”的要求。
它不操作控制台,而是生成格式化后的字符串,之后可打印、拼接或返回,灵活性高,也便于单元测试和日志记录。
String.format() 是最典型的 static 格式化方法
String result = String.format("姓名:%s,年龄:%d,身高:%.2f", "张三", 28, 1.75);
System.out.println(result); // 输出:姓名:张三,年龄:28,身高:1.75
- ✅
String.format()是static方法(定义在String类中) - ✅ 参数结构为:
String.format(格式字符串, 参数1, 参数2, ...) - ✅ 返回
String,不直接输出,适合构建日志、SQL、JSON 等场景
常见占位符:
-
%s→ 字符串 -
%d→ 十进制整数(int,long) -
%f→ 浮点数(默认保留6位小数) -
%.2f→ 保留2位小数(四舍五入) -
%05d→ 整数不足5位时,左侧补0 -
%-10s→ 字符串左对齐,总宽10字符,右侧补空格 -
%%→ 输出一个真实的%符号
其他 static 相关的格式化入口
虽然 System.out.printf() 和 System.out.format() 更常用于直接输出,但它们本质也是 PrintStream 的实例方法。不过注意:
-
System.out是PrintStream实例,不是static工具类 - 它们的底层其实调用了
Formatter,而Formatter构造本身不 static,但String.format()内部封装了这一流程,对外完全 static
所以真正符合“用 static 方法做格式化输出”的,首选 String.format();若需直接输出到控制台,可组合使用:
System.out.println(String.format("总价:%,.2f 元", 12345.678)); // 输出:总价:12,345.68 元
其中 , 表示启用千位分隔符(Locale 敏感,默认按系统区域设置生效)。
自定义 static 格式化工具方法(推荐扩展)
你可以封装自己的 static 工具类,复用常用格式:
public class FormatUtil {
public static String money(double amount) {
return String.format("¥%,.2f", amount);
}
public static String idCard(String num) {
return String.format("%s****%s", num.substring(0, 4), num.substring(12));
}
}
// 使用
System.out.println(FormatUtil.money(99999.99)); // ¥99,999.99
这样既保持 static 调用习惯,又提升可读性与复用性。
不复杂但容易忽略:String.format() 抛出 IllegalFormatException(运行时异常),如果占位符数量/类型不匹配,务必确保参数个数和类型与格式串一致。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











