在Java中,printf
方法支持多种格式说明符,用于格式化不同类型的数据
常用的格式说明符:
|---------------|-------------------------------------------------|
| %d
或 %i
| 用于输出十进制整数 |
| %x
或 %X
| 用于输出十六进制整数(小写或大写字母) |
| %o | 用于输出八进制整数 |
| %u | 用于输出无符号整数(已废弃,不推荐使用) |
| %f | 用于输出浮点数,默认精度为6位小数 |
| %.<digits>f | 用于输出浮点数,并指定小数点后的位数 |
| %e
或 %E
| 用于输出科学计数法表示的浮点数(小写或大写E
) |
| %g
或 %G
| 用于输出浮点数,根据数值的大小自动选择 %f
或 %e
(小写或大写) |
| %a
或 %A
| 用于输出十六进制浮点数(小写或大写字母) |
| %s | 用于输出字符串 |
| %c | 用于输出单个字符 |
| %b | 用于输出布尔值(true/false) |
| %h | 用于输出散列码(hashCode) |
| %t | 用于输出时间(从1970年1月1日00:00:00 GMT到现在的毫秒数) |
| %n | 用于输出平台的行分隔符(在Windows上是\r\n
,在Unix/Linux上是\n
) |
| %% | 用于输出百分号(%) |
[printf常用格式说明符]
printf的flags
|------------|-----------------------------------------------|
| 标志 | 目的 |
| + | 打印正数和负数的符号 |
| 空格 | 在正数之前添加空格 |
| 0 | 数字前面补0 |
| - | 左对齐(不指定-时,默认右对齐) |
| ( | 将负数括在括号内 |
| , | 添加分组分隔符(只对定点浮点数整数部分添加分组分隔符,小数部分不会添加) |
| #(对于f格式) | 包含小数点 |
| #(对于x或o格式) | 添加前缀0x或0 |
| $ | 指定要格式化的参数索引。例如,%1d d %1dx 将以十进制和十六进制格式打印第1个参数 |
| < | <格式化前面说明的数值。例如,%d<%x,将以十进制和十六进制打印同一个值 |
[printf的flags]
此外,还可以通过指定宽度、精度和标志来进一步控制输出格式
%5d:输出宽度为5的整数,右对齐。
%-5d:输出宽度为5的整数,左对齐。
%05d:输出宽度为5的整数,用0填充空白。
%.2f:输出小数点后两位的浮点数。
%,d:输出整数时使用千位分隔符。