printf格式化输出
转换符说明:
%s 字符串类型
%c 字符类型
%b 布尔类型
%d 整数类型(十进制)
%x 整数类型(十六进制)
%o 整数类型(八进制)
%f 浮点类型
%a 十六进制浮点类型
%e 指数类型
%g 通用浮点类型(f和e类型中较短的)
%h 散列码
%% 百分比类型
%n 换行符
%tx 日期与时间类型(x代表不同的日期与时间转换符
实例
System.out.printf("字符串类型: %s %s %s %n", "周杰伦", "林俊杰", "张学友");
System.out.printf("字符类型: %c 只能输入一个字符 %n", 'a');
System.out.printf("布尔类型: %b %n", true);
System.out.printf("整数类型(十进制): %d %n", 10);
System.out.printf("整数类型(十六进制): %x %n", 10);
System.out.printf("整数类型(八进制): %o %n", 10);
System.out.printf("浮点类型: %f %n", 10.0);
System.out.printf("十六进制浮点类型: %a %n", 10.0);
System.out.printf("指数类型: %e %n", 10.0);
System.out.printf("通用浮点类型(f和e类型中较短的): %g %n", 10.0);
System.out.printf("散列码: %h %n", 10.0);
System.out.printf("百分比类型: %d%% %n", 10);
输出结果:
字符串类型: 周杰伦 林俊杰 张学友
字符类型: a 只能输入一个字符
布尔类型: true
整数类型(十进制): 10
整数类型(十六进制): a
整数类型(八进制): 12
浮点类型: 10.000000
十六进制浮点类型: 0x1.4p3
指数类型: 1.000000e+01
通用浮点类型(f和e类型中较短的): 10.0000
散列码: 40240000
百分比类型: 10%
搭配转换符的标志
+ 为正数或者负数添加符号
0 数字面前补0
空格 在整数之前添加指定数量的空格
, “,”对数字分组
( 负数括在括号内
# 如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0
< 格式化前一个转换符所描述的参数
$ 被格式化的参数索引
System.out.printf("\"+\": %+d %n",10);
System.out.printf("\"0\": %04d %n",10);
System.out.printf("\"空格\" % 4d %n",10);
System.out.printf("\",\": %,f %n",1000000.0);
System.out.printf("\"(\": %(f %n",-100.00);
System.out.printf("\"#\": %#x %n",10);
System.out.printf("\"<\": %f和%<1.2f %n",10.223);
System.out.printf("\"$\": %1$d %2$s %n",13,"a");
输出结果:
"+": +10
"0": 0010
"空格" 10
",": 1,000,000.000000
"(": (100.000000)
"#": 0xa
"<": 10.223000和10.22
"$": 13 a
日期和事件字符串格式化
c 包括全部日期和时间信息
F “年-月-日”格式
D “月/日/年”格式
r “HH:MM:SS PM”格式(12时制)
T “HH:MM:SS”格式(24时制)
R “HH:MM”格式(24时制)
Date date = new Date();
System.out.printf("%tc %n", date);
System.out.printf("%tF %n", date);
System.out.printf("%tD %n", date);
System.out.printf("%tT %n", date);
System.out.printf("%tR %n", date);
System.out.printf("%tF %tT %n",date,date);
输出结果:
星期日 十二月 17 16:15:39 CST 2017
2017-12-17
12/17/17
16:15:39
16:15
2017-12-17 16:15:39