标识:
'-' 在最小宽度内左对齐,不可以与“用0填充”同时使用
'#' 只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x
'+' 结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
' ' 正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
'0' 结果将用零来填充
',' 只适用于10进制,每3位数字之间用“,”分隔
'(' 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同‘+’具有同样的限制)
转换方式:
d-十进制 o-八进制 x或X-十六进制
举几个例子:
System.out.println(String.format("%1$,02d,test %2$,011d", -3123,1234));
输出内容:-3,123,test 0000001,234
System.out.println(String.format("%1d,test %4$,011d", -3123,1234,45,23));
输出内容:-3123,test 00000000023
System.out.println(String.format("%1$+dthe text here will show %2$,+011d", -3123,1234,45,23));
输出内容:-3123the text here will show +000001,234
详解:
1. 在这串参数中,除了%[index]$[标识][最小宽度]转换方式 这一部分的内容用于设定输出格式外,其他的字符都会被输出。
2. 这串参数内没有被 %index提到的参数的都不会被输出,index从1开始数起。
3. %跟着index,两者缺一不可。
4. $后面跟着标识,可以连续跟几个标识,但不可有$没有标识。
5. 转换方式不可省略。
6. %是转意符
2. 对浮点数进行格式化:%[index]$[标识][最少宽度].[精度]转换方式
标识:
'-' 在最小宽度内左对齐,不可以与“用0填充”同时使用
'+' 结果总是包括一个符号
' ' 正值前加空格,负值前加负号
'0' 结果将用零来填充
',' 每3位数字之间用“,”分隔(只适用于fgG的转换)
'(' 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)
转换方式:
'e', 'E' -- 结果被格式化为用计算机科学记数法表示的十进制数
'f' -- 结果被格式化为十进制普通表示方式
'g', 'G' -- 根据具体情况,自动选择用普通表示方式还是科学计数法方式
'a', 'A' -- 结果被格式化为带有效位数和指数的十六进制浮点数
例子:
System.out.println(String.format("%1$+f", -345243.432));
输出内容:-345243.432000
System.out.println(String.format("%1$+.2f", -345243.436));
输出内容:-345243.44
详解:
1. 在这串参数中,除了%[index]$[标识][最小宽度]转换方式 这一部分的内容用于设定输出格式外,其他的字符都会被输出。
2. 这串参数内没有被 %index提到的参数的都不会被输出,index从1开始数起。
3. %跟着index,两者缺一不可。
4. $后面跟着标识,可以连续跟几个标识,但不可有$没有标识。
5. 转换方式不可省略。
6. %是转意符
7. . 后跟精度,两者必须同时出现,若没有,默认值是小数点后6位。超出设定精度,自动进行四舍五入。