String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。
例如:
String字符串补0
String.format("字符%04d",23) 结果: "字符0023"
%04d -- (不足4位补0)
小数点位数
String.format("字符% 4.5f",11.111) 结果: "字符 11.11100"
% 4.5f -- (空格4 - 空格4个字符),(.5 - 小数点后5位(四舍五入))
format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。
format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。
下面几个常用的标红
转换符
%s 字符串类型
String.format("字符%s","串") 结果: "字符串"
-----------------------------------------------------------------
%c 字符类型
String.format("字符%c",'A') 结果: "字符A"
-----------------------------------------------------------------
%b 布尔类型
String.format("字符%b",1==2) 结果: "字符false"
-----------------------------------------------------------------
%d 整数类型(十进制)
String.format("字符%d",20/2) 结果: "字符10"
-----------------------------------------------------------------
%x 整数类型(十六进制)
String.format("字符%x",100) 结果: "64"
-----------------------------------------------------------------
%o 整数类型(八进制)
String.format("字符%o",100) 结果: "字符144"
-----------------------------------------------------------------
%f 浮点类型
String.format("字符%f",10*0.05) 结果: "字符0.500000"
-----------------------------------------------------------------
%h 散列码
String.format("字符%h",'A') 结果: "字符41"
-----------------------------------------------------------------
%% 百分比类型
String.format("字符%d%%",85) 结果: "字符85%"
-----------------------------------------------------------------
%a 浮点类型(十六进制)
%e 指数类型
%g 通用浮点类型
%n 换行符
%tx 日期与时间类型(x代表不同的日期与时间转换符)
标记符号
+ 为正数 or 负数添加符号
String.format("字符%+d",99) 结果: "字符+99"
-----------------------------------------------------------------
0 数字前补0
String.format("字符%04d",23) 结果: "字符0023"
-----------------------------------------------------------------
空格 在整数之前添加指定数量的空格
String.format("字符% 4d",123) 结果: "字符 123"
-----------------------------------------------------------------
, 以“,”对数字分组
String.format("字符%,f",11111.111) 结果: "字符11,111.111000"
String.format("字符% 4.5f",11.111) 结果: "字符 11.11100"
-----------------------------------------------------------------
- 左对齐
( 使用括号包含负数
# 如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0
< 格式化前一个转换符所描述的参数
$ 被格式化的参数索引
日期和时间
c 包括全部日期和时间 星期五 四月 07 18:03:20 CST 2017
F “年-月-日”格式 2017-04-07
D “月/日/年”格式 04/07/17
r “HH:MM:SS PM”格式(12时制) 06:04:20 下午
T “HH:MM:SS”格式(24时制) 18:04:20
R “HH:MM”格式(24时制) 18:04
String.format("时间%tT",new Data) 结果: "时间19:21:00" (%t+格式)
转换符(很少用这里不多做介绍了)
使用时同样 (%t + 格式)
H 2位数字24时制的小时(不足2位前面补0) 15
I 2位数字12时制的小时(不足2位前面补0) 03
k 2位数字24时制的小时(前面不补0) 15
i 2位数字12时制的小时(前面不补0) 03
M 2位数字的分钟(不足2位前面补0) 03
S 2位数字的秒(不足2位前面补0) 09
L 3位数字的毫秒(不足3位前面补0) 015
N 9位数字的毫秒数(不足9位前面补0) 562000000
p 小写字母的上午或下午标记 中:下午 英:pm
z 相对于GMT的RFC822时区的偏移量 +0800
Z 时区缩写字符串 CST
s 1970-1-1 00:00:00 到现在所经过的秒数 1193468128
Q 1970-1-1 00:00:00 到现在所经过的毫秒数 1193468128984