悠悠楠杉
网站页面
正文:
在Java开发中,字符串格式化是一项高频操作。无论是日志输出、数据展示还是文件写入,都需要将变量按特定格式拼接为字符串。Java提供了多种格式化工具,其中java.util.Formatter类及其简化方法(如String.format和System.out.printf)是核心解决方案。本文将详细剖析其用法,助你掌握这一实用技能。
Formatter是Java SE 5引入的类,位于java.util包中。它通过格式说明符(Format Specifiers)控制输出样式,支持字符串、数字、日期等多种数据类型。其核心语法为:text
%[参数索引$][标志][宽度][.精度]转换符
1$表示第一个参数)。-表示左对齐)。
Formatter formatter = new Formatter();
formatter.format("姓名:%s,年龄:%d", "张三", 25);
System.out.println(formatter.toString()); // 输出:姓名:张三,年龄:25
%s(可设置宽度,如%10s右对齐,%-10s左对齐)。%d(十进制)、%o(八进制)、%x(十六进制)。%f(默认6位小数)、%.2f(保留2位)。
System.out.printf("价格:%8.2f 元%n", 99.5); // 输出:价格: 99.50 元
结合java.util.Calendar或java.time包:
Calendar cal = Calendar.getInstance();
System.out.printf("当前时间:%tY年%tm月%td日", cal, cal, cal); // 输出:当前时间:2023年08月15日
%%:输出百分号。%n:跨平台换行符(优于\n)。通过索引重复使用参数,避免重复传递:
String.format("%1$s的得分是%2$d,%1$s排名第%3$d", "李四", 90, 1);
// 输出:李四的得分是90,李四排名第1
指定Locale实现国际化格式化:
Formatter formatter = new Formatter(Locale.US);
formatter.format("美元金额:%,.2f", 10000.5); // 输出:美元金额:10,000.50
IllegalFormatException。通过灵活运用Formatter,开发者可以高效完成复杂字符串拼接任务,提升代码可读性与维护性。