Formatter 作用
Formatter 對象主要是把JAVA中的字符串、基本類型及其包裝對象格式化成字符串,當(dāng)然也可以用來格式時間輸出。常見的System.out.printf, String.format 都是調(diào)用Formatter實現(xiàn)字符串格式化。
Formatter 使用例子
格式化輸出如下代碼:
輸出結(jié)果:
Formatter 語法
format 語法:
%[argument_index$][flags][width][.precision]conversion
語法說明:
1,% :百分號為固定開頭。
2,argument_index$ :代碼格式化第幾個參數(shù),參數(shù)從1開始。
3,flags : 可以控制輸出的一些標(biāo)志,比如 "-" 表示左對齊,默認(rèn)是右對齊。
4, width : 該區(qū)域輸出的最小寬度。比如10,表示該區(qū)域固定10個字符長度,小于10個字符的會用空格補齊。
5,.precision : 輸出精度,如果是字符串,則表示最大輸出字符串長度,超過會被截取。如果是浮點類型,則表示小數(shù)點的精度。
6,conversion : 格式化類型,比如s:表示字符串,d:表示整數(shù),f:表示浮點數(shù),t:表示時間等。
注意:不同的conversion類型,語法會有略不同。比如時間類型沒有[.precision]參數(shù)。
Formatter Conversion 支持列表
- 'b' : boolean 類型
- 'h' : 參數(shù)對象hashcode 轉(zhuǎn)成十六進(jìn)制輸出
- 's' : 字符串
- 'c' : 字符
- 'd' : 十進(jìn)制數(shù)字
- 'o' : 八進(jìn)制數(shù)字
- 'x' : 十六進(jìn)制數(shù)字
- 'e' : 科學(xué)計數(shù)法輸出浮點數(shù)類型
- 'f' : 浮點數(shù)類型
- 'g' : 浮點類型以科學(xué)計數(shù)法或者十進(jìn)制數(shù)字輸出,就是 e,f 的結(jié)合。
- 'a' : 浮點類型以十六進(jìn)制輸出
- 't' : 格式化時間類型
- '%' : 輸出百分號 %
- 'n' : 輸出換行符
Formatter 使用例子詳解
printf("%1$-10.10s %2$10s%n","Name","Age");
1,%1$-10.10s :
1%: 表示使用第一個參數(shù)即 "Name"。
-: 表示左對齊。
10: 表示固定寬度。
.10: 表示最大輸出10個字符,多余被截取。
s: 表示字符串格式類型。
2,%2$10s:
2$: 表示使用第二個參數(shù),即"Age"。
10: 表示固定寬度。
s: 表示字符串格式化類型。
3,%n
n: 表示換行
總結(jié)
掌握字符串,整數(shù),浮點數(shù)常用格式化,在編程中基本都夠用。雖然Formatter 也能格式化時間,但建議還是使用時間專用的格式化類比較好。






