Java的格式化输出
在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的flags
标志 | 目的 |
+ | 打印正数和负数的符号 |
空格 | 在正数之前添加空格 |
0 | 数字前面补0 |
- | 左对齐(不指定-时,默认右对齐) |
( | 将负数括在括号内 |
, | 添加分组分隔符(只对定点浮点数整数部分添加分组分隔符,小数部分不会添加) |
#(对于f格式) | 包含小数点 |
#(对于x或o格式) | 添加前缀0x或0 |
$ | 指定要格式化的参数索引。例如,%1d d %1dx 将以十进制和十六进制格式打印第1个参数 |
< | <格式化前面说明的数值。例如,%d<%x,将以十进制和十六进制打印同一个值 |
此外,还可以通过指定宽度、精度和标志来进一步控制输出格式
%5d:输出宽度为5的整数,右对齐。
%-5d:输出宽度为5的整数,左对齐。
%05d:输出宽度为5的整数,用0填充空白。
%.2f:输出小数点后两位的浮点数。
%,d:输出整数时使用千位分隔符。