String.format()用法

1 占位符

1.1 单个占位符

String s = String.format("Hello %s,Welcome to my blog!", "jerry");
System.out.println(s);//Hello jerry,Welcome to my blog!

1.2 多个占位符

1.2.1 按顺序

String s = String.format("Hello %s%s%s", "jerry-", "li", ",welcome!");

1.2.2 按索引

String s = String.format("Hello %2$s%3$s%1$s", "li-", "heng-", "jie");

2 对整数格式化

int n2 = 9999999;
System.out.printf("%+(,d %n", n2);
参数 含义
- 在最小宽度内左对齐,不可以与0标识一起使用。
0 若内容长度不足最小宽度
+ 结果总包含一个+或-号。
空格 正数前加空格
, 只用与十进制
( 若结果为负数

3 对浮点数格式化

double n = 3.1415926;
String s = String.format("%f %n", num);
参数 含义
- 在最小宽度内左对齐
0 若内容长度不足最小宽度
+ 结果总包含一个+或-号。
空格 正数前加空格
, 只用与十进制
( 若结果为负数

4 对日期、时间格式化

对日期格式化的时候不能像对数字那样多种格式对应一个数字,
分为日期格式化及时间格式化两部分,如果希望格式化之后的格式是:
2017-01-13 12:05:30,需要先格式化日期,然后再格式化时间。
如下:

Date date = new Date();
String dateFormat = String.format("%tF %tT ", date, date);
System.out.println(dateFormat);

日期格式化:

参数 含义
c 星期六 十月 27 14:21:20 CST 2007
F 2007-10-27
D 10/27/07
r 02:25:51 下午
T 14:28:16
R 14:28
b 月份简称
B 月份全称
a 星期简称
A 星期全称
C 年前两位(不足两位补零)
y 年后两位(不足两位补零)
j 当年的第几天
m 月份(不足两位补零)
d 日期(不足两位补零)
e 日期(不足两位不补零

时间格式化:

参数 含义
H 24小时制的小时(不足两位补零)
k 24小时制的小时(不足两位不补零)
I 12小时制的小时(不足两位补零)
i 12小时制的小时(不足两位不补零)
M 分钟(不足两位补零)
S 秒(不足两位补零)
L 毫秒(不足三位补零)
N 毫秒(不足9位补零)
p 小写字母的上午或下午标记,如中文为“下午”,英文为pm
z 相对于GMT的时区偏移量,如+0800
Z 时区缩写,如CST
s 自1970-1-1 00:00:00起经过的秒数
Q 自1970-1-1 00:00:00起经过的豪秒

备注:(System.out.printf()==System.out.print(String.format())

你可能感兴趣的:(java)