如何在Java中使用printf输出格式化文本

答案:Java中System.out.printf用于格式化输出,支持%d、%f、%s等格式符控制整数、浮点数、字符串输出,可设置宽度与精度,如%10.2f,推荐使用%n换行,支持日期格式化如%tF %tT,实现跨平台兼容的整齐文本输出。

在Java中,可以使用System.out.printf方法输出格式化文本。它类似于C语言中的printf,通过格式化字符串控制输出样式,适合对齐文本、保留小数位等场景。

基本语法

printf 方法的语法如下:

System.out.printf("格式化字符串", 参数1, 参数2, ...);

格式化字符串包含普通字符和格式说明符(以%开头),参数按顺序替换这些说明符。

常用格式说明符

以下是一些常见的格式符及其用途:

  • %d:输出十进制整数
  • %f:输出浮点数
  • %s:输出字符串
  • %c:输出单个字符
  • %n:换行(推荐使用,平台兼容)
  • %%:输出百分号%

示例:

System.out.printf("姓名:%s,年龄:%d%n", "张三", 25);
// 输出:姓名:张三,年龄:25

控制精度和宽度

可以在格式符中添加字段宽度和精度控制输出格式。

  • %8d:输出至少8个字符宽的整数,右对齐
  • %-8d:左对齐,宽度为8
  • %.2f:保留两位小数
  • %10.2f:总宽度10,保留两位小数,右对齐
  • %-10.2f:左对齐,总宽度10,保留两位小数

示例:

System.out.printf("价格:%10.2f元%n", 12.345);
// 输出:价格: 12.35元

日期和时间格式化

使用%t系列格式符可格式化日期时间。

import java.util.Date;

Date now = new Date();
System.out.printf("当前时间:%tF %tT%n", now, now);
// 输出类似:2025-04-05 14:30:22

常见时间格式:

  • %tF:年-月-日(ISO格式)
  • %tT:时:分:秒(24小时制)
  • %tr:12小时制时间
基本上就这些。掌握常用格式符和宽度控制,就能灵活输出整齐美观的文本。注意使用%n换行更安全,避免依赖系统默认换行符。