**String.format()**是 Java 中最核心的字符串格式化工具,能根据指定模板和参数生成标准化字符串,替代硬编码拼接,提升代码可读性和跨平台兼容性。以下是其完整、系统的用法讲解。
一、基础认知
核心作用
将普通文本与动态参数按指定格式拼接,返回格式化后的字符串(类似 C 语言printf,但不直接输出,仅返回字符串)。
核心语法
提供两个重载方法,日常开发中前者更常用:
// 1. 默认本地环境(Locale):适配当前系统的数字/日期格式
public static String format(String format, Object... args)
// 2. 指定本地环境:比如强制使用英文/中文区域的日期/数字格式
public static String format(Locale l, String format, Object... args)
format:格式模板,包含普通文本和以%开头的格式说明符(占位符);args:可变参数,按顺序匹配模板中的占位符(可通过参数索引复用 / 乱序)。
二、格式说明符的完整结构
格式说明符是String.format()的核心,决定参数的格式化规则,完整结构如下:
%[参数索引$][标志][宽度][.精度]转换符
各部分含义(必选 / 可选标注):
| 组成部分 | 是否必选 | 说明 |
|---|---|---|
% | 是 | 格式说明符的起始标记。 |
| 参数索引 $ | 否 | 指定使用第几个参数(如%2$d表示第二个参数作为整数),可复用参数。 |
| 标志 | 否 | 格式化修饰符(如左对齐、补零、千分位、显示正负号)。 |
| 宽度 | 否 | 指定输出的最小字符数(不足时补空格 / 零,超出则按实际长度)。 |
| . 精度 | 否 | 浮点数:指定小数位数;字符串:指定截取长度;整数 / 字符:无意义。 |
| 转换符 | 是 | 核心,指定参数的类型(如整数、字符串、日期、进制)。 |
三、全量常用转换符
转换符决定参数的解析类型,以下是覆盖 99% 场景的全量常用转换符(标注「补充」为之前额外新增的):

