String.format()
方法是Java中一种用于创建格式化字符串的强大工具,该方法通过占位符和参数的结合使用,可以控制字符串中数据的呈现方式。以下是一些最常用的格式占位符及其用法说明:
%s
- 字符串格式占位符:
用于插入一个字符串,替换时会调用对象的toString()
方法。%d
- 整数格式占位符:
用于插入十进制整数。%f
- 浮点数格式占位符:
用于插入十进制浮点数。可以指定小数点后的位数。%t
- 日期/时间格式占位符:
与后续字符组合使用,例如%tY
表示四位年份,%tm
表示月份等,用于格式化日期和时间值。%c
- 字符格式占位符:
用于插入单个字符。%b
- 布尔格式占位符:
用于插入布尔值,如果参数非空非false
则结果为true
。%e
- 科学计数法表示的浮点数:
用于以科学计数法格式化浮点数。%x
或%X
- 十六进制整数:
用于以十六进制整数格式化输出,%x
产生小写字母,而%X
产生大写字母。
格式化字符串可以包括一个或多个格式说明符,这些说明符都以 %
符号开头。每个格式说明符都可以包含几个部分:标志、宽度、精度和转换代码。
- 标志:例如
-
用于左对齐输出、0
用于数字前面补零。 - 宽度:表示最小的输出宽度。
- 精度:对于浮点数而言,精度表示小数点后的位数;对于字符串而言,精度表示最大输出长度。
例如,格式说明符 "%6.2f"
表示输出的浮点数至少占6个字符宽,且小数点后有两位数字。
以下提供了一些 String.format()
方法的实例:
- 将字符串插入到格式化的文本中:
String name = "Java";
String formattedString = String.format("Hello %s!", name);
// 输出:"Hello Java!"
- 格式化整数填充零并对齐:
int number = 75;
String formattedNumber = String.format("%03d", number);
// 输出:"075"
- 格式化浮点数至特定小数位:
double pi = Math.PI;
String formattedPi = String.format("%.2f", pi);
// 输出:"3.14"
- 对齐文本并指定宽度:
String text = "Align me";
String formattedText = String.format("|%-10s|", text);
// 输出:"|Align me |" ("Align me"后面跟了两个空格,总宽度为10)
- 格式化当前日期为 YYYY-MM-DD 格式:
String formattedDate = String.format("%tF", new Date());
// 输出形式如:"2023-04-13"
通过综合使用它们,可以在Java中构造非常具体和高度定制的输出格式。这对于输出报道、创建用户界面或者任何需要精确控制输出格式的场合都非常有用。记住,当使用格式化方法时,需要确保提供的输入参数与占位符类型匹配,否则会抛出 java.util.IllegalFormatException
。