JDK1.5開始String類中提供了一個非常有用的方法String.format(String format, Object ... args)
查看源碼得知其實是調用了java.util.Formatter.format(String, Object...)方法
public static String format(String format, Object ... args) { return new Formatter().format(format, args).toString(); }
查看JDK文檔得知,String.format方法的第一個參數是有個公式可以套的
%[argument_index$][flags][width][.precision]conversion
這里我們只要牢記這個公式就可以,下面說下每個顏色所代表的含義
argument_index: 可選,是一個十進制整數,用於表明參數在參數列表中的位置。第一個參數由 "1$" 引用,第二個參數由 "2$" 引用,依此類推。
flags: 可選,用來控制輸出格式
width: 可選,是一個正整數,表示輸出的最小長度
precision:可選,用來限定輸出字符數
conversion:必須,用來表示如何格式化參數的字符
顯示不同轉換符實現不同數據類型到字符串的轉換,如圖所示。
轉 換 符 |
說 明 |
示 例 |
%s |
字符串類型 |
"mingrisoft" |
%c |
字符類型 |
'm' |
%b |
布爾類型 |
true |
%d |
整數類型(十進制) |
99 |
%x |
整數類型(十六進制) |
FF |
%o |
整數類型(八進制) |
77 |
%f |
浮點類型 |
99.99 |
%a |
十六進制浮點類型 |
FF.35AE |
%e |
指數類型 |
9.38e+5 |
%g |
通用浮點類型(f和e類型中較短的) |
|
%h |
散列碼 |
|
%% |
百分比類型 |
% |
%n |
換行符 |
|
%tx |
日期與時間類型(x代表不同的日期與時間轉換符 |
搭配轉換符的標志,如圖所示。
標 志 |
說 明 |
示 例 |
結 果 |
+ |
為正數或者負數添加符號 |
("%+d",15) |
+15 |
− |
左對齊 |
("%-5d",15) |
|15 | |
0 |
數字前面補0 |
("%04d", 99) |
0099 |
空格 |
在整數之前添加指定數量的空格 |
("% 4d", 99) |
| 99| |
, |
以“,”對數字分組 |
("%,f", 9999.99) |
9,999.990000 |
( |
使用括號包含負數 |
("%(f", -99.99) |
(99.990000) |
# |
如果是浮點數則包含小數點,如果是16進制或8進制則添加0x或0 |
("%#x", 99) ("%#o", 99) |
0x63 0143 |
< |
格式化前一個轉換符所描述的參數 |
("%f和%<3.2f", 99.45) |
99.450000和99.45 |
$ |
被格式化的參數索引 |
("%1$d,%2$s", 99,"abc") |
99,abc
|