常規類型的格式化java
String類的format()方法用於建立格式化的字符串以及鏈接多個字符串對象。熟悉C語言的同窗應該記得c語言的sprintf()方法,二者有相似之處。format()方法有兩種重載形式。算法
format(String format, Object... args) 新字符串使用本地語言環境,制定字符串格式和參數生成格式化的新字符串。測試
format(Locale locale, String format, Object... args) 使用指定的語言環境,制定字符串格式和參數生成格式化的字符串。.net
顯示不一樣轉換符實現不一樣數據類型到字符串的轉換,如圖所示。3d
轉 換 符orm |
說 明 對象 |
示 例blog |
%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表明不一樣的日期與時間轉換符 |
測試用例
[java] view plain copy
輸出結果
[plain] view plain copy
搭配轉換符的標誌,如圖所示。
標 志 |
說 明 |
示 例 |
結 果 |
+ |
爲正數或者負數添加符號 |
("%+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 |
測試用例
[java] view plain copy
輸出結果
[plain] view plain copy
日期和事件字符串格式化
在程序界面中常常須要顯示時間和日期,可是其顯示的 格式常常不盡人意,須要編寫大量的代碼通過各類算法才獲得理想的日期與時間格式。字符串格式中還有%tx轉換符沒有詳細介紹,它是專門用來格式化日期和時 間的。%tx轉換符中的x表明另外的處理日期和時間格式的轉換符,它們的組合可以將日期和時間格式化成多種格式。
常見日期和時間組合的格式,如圖所示。
轉 換 符 |
說 明 |
示 例 |
c |
包括所有日期和時間信息 |
星期六 十月 27 14:21:20 CST 2007 |
F |
「年-月-日」格式 |
2007-10-27 |
D |
「月/日/年」格式 |
10/27/07 |
r |
「HH:MM:SS PM」格式(12時制) |
02:25:51 下午 |
T |
「HH:MM:SS」格式(24時制) |
14:28:16 |
R |
「HH:MM」格式(24時制) |
14:28 |
測試用例
[java] view plain copy
輸出結果
[plain] view plain copy
定義日期格式的轉換符可使日期經過指定的轉換符生成新字符串。這些日期轉換符如圖所示。
[java] view plain copy
輸出結果
[plain] view plain copy
和日期格式轉換符相比,時間格式的轉換符要更多、更精確。它能夠將時間格式化成時、分、秒甚至時毫秒等單位。格式化時間字符串的轉換符如圖所示。
轉 換 符 |
說 明 |
示 例 |
H |
2位數字24時制的小時(不足2位前面補0) |
15 |
I |
2位數字12時制的小時(不足2位前面補0) |
03 |
k |
2位數字24時制的小時(前面不補0) |
15 |
l |
2位數字12時制的小時(前面不補0) |
3 |
M |
2位數字的分鐘(不足2位前面補0) |
03 |
S |
2位數字的秒(不足2位前面補0) |
09 |
L |
3位數字的毫秒(不足3位前面補0) |
015 |
N |
9位數字的毫秒數(不足9位前面補0) |
562000000 |
p |
小寫字母的上午或下午標記 |
中:下午 英:pm |
z |
相對於GMT的RFC822時區的偏移量 |
+0800 |
Z |
時區縮寫字符串 |
CST |
s |
1970-1-1 00:00:00 到如今所通過的秒數 |
1193468128 |
Q |
1970-1-1 00:00:00 到如今所通過的毫秒數 |
1193468128984 |
測試代碼
[java] view plain copy
輸出結果
[plain] view plain copy