如果想对字符串进行格式化输出,则可以使用String中的静态方法format来实现。
format有两种形式:
1)指定Locale,形如:format(Locale l, String format, args);
2)默认Locale,形如:format(String format, args).
一、对整数进行格式化:%
index$
标识
最小宽度
转换方式
标识说明:
'-' 在最小宽度内左对齐,不可以与“用0填充”同时使用 |
|
'#' 只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x |
|
'+' 结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制) |
|
' ' 正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制) |
|
'0' 结果将用零来填充 |
|
',' 只适用于10进制,每3位数字之间用“,”分隔 |
|
'(' 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同‘+’具有同样的限制) |
转换方式:
d-十进制 o-八进制 x或X-十六进制
示例:
String.format(Locale.US, "%1$,08d", -12345);
String.format(Locale.US, "%1$8d", 12345);
String.format(Locale.US, "%1$(8d", -12345);
String.format(Locale.US, "%1$-8d", 12345);
String.format(Locale.US, "%1$#8x", 12345);
/*
执行结果为:
-012,345
12345
(12345)
12345
0x3039
*/
二、对浮点数对浮点数进行格式化:%
index$
标识
最少宽度.
精度
转换方式
标识说明:
'-' 在最小宽度内左对齐,不可以与“用0填充”同时使用 |
|
'+' 结果总是包括一个符号 |
|
' ' 正值前加空格,负值前加负号 |
|
'0' 结果将用零来填充 |
|
',' 每3位数字之间用“,”分隔(只适用于fgG的转换) |
|
'(' 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换) |
转换方式:
'e', 'E' -- 结果被格式化为用计算机科学记数法表示的十进制数
'f' -- 结果被格式化为十进制普通表示方式
'g', 'G' -- 根据具体情况,自动选择用普通表示方式还是科学计数法方式
'a', 'A' -- 结果被格式化为带有效位数和指数的十六进制浮点数