格式化字符串由4部分组成,特殊的格式常以%index$开头,index从1开始取值,表示将第index个参数拿进来进行格式化,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。剩下2个部分的含义:
标识如下:
- -在最小宽度内左对齐,不可以与"用0填充"同时使用
- #只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x
- +结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
- 正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
- 0结果将用零来填充
- ,只适用于10进制,每3位数字之间用","分隔
- (若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同’+'具有同样的限制)
例如:
System.out.println(String.format("%1$-9d", 312356));
312356
System.out.println(String.format("%1$#9x", 312356));
0x4c424
System.out.println(String.format("%1$-#9o", 312356));
01142044
System.out.println(String.format("%1$+9d", 312356));
+312356
System.out.println(String.format("%1$ 9d", 312356));
312356
System.out.println(String.format("%1$ 9d", -312356));
-312356
System.out.println(String.format("%1$09d", 312356));
000312356
System.out.println(String.format("%1$,9d", 312356));
312,356
System.out.println(String.format("%1$(9d", 312356));
312356