來(lái)源:北大青鳥(niǎo)飛迅校區(qū)|發(fā)布時(shí)間:2013-05-02 09:30:53
在JDK1.5中,String類(lèi)增加了一個(gè)非常有用的靜態(tài)函數(shù)format(String format, Objece... argues),可以將各類(lèi)數(shù)據(jù)格式化為字符串并輸出。其中format參數(shù)指定了輸出的格式,是最復(fù)雜也是最難掌握的一點(diǎn),而argues則是一系列等 待被格式化的對(duì)象。該函數(shù)對(duì)c語(yǔ)言中printf函數(shù)的用法進(jìn)行了一定的模仿,因此有c語(yǔ)言基礎(chǔ)的人學(xué)起來(lái)會(huì)輕松許多。下面我們著重討論一下format 參數(shù)的格式及含義。
format參數(shù)中可以包含不需要轉(zhuǎn)化的字符串,這些字符串是你寫(xiě)什么,最終就輸出什么。同時(shí)還包含一些特殊格式的內(nèi)容,來(lái)指定將哪個(gè)對(duì)象來(lái)轉(zhuǎn)換,以及轉(zhuǎn) 換成什么形式。這種特殊的格式通通以%index$開(kāi)頭,index從1開(kāi)始取值,表示將第index個(gè)參數(shù)拿進(jìn)來(lái)進(jìn)行格式化。這一點(diǎn)比c語(yǔ)言要強(qiáng)一點(diǎn), c語(yǔ)言只能按照參數(shù)的順序依次格式化,而java可以選擇第n個(gè)參數(shù)來(lái)格式化。由于該函數(shù)可以對(duì)任意一個(gè)對(duì)象進(jìn)行格式化,不同的對(duì)象適用的參數(shù)也不同,因 此我們下面分類(lèi)來(lái)討論。
1.對(duì)整數(shù)進(jìn)行格式化:%[index$][標(biāo)識(shí)][最小寬度]轉(zhuǎn)換方式
我們可以看到,格式化字符串由4部分組成,其中%[index$]的含義我們上面已經(jīng)講過(guò),[最小寬度]的含義也很好理解,就是最終該整數(shù)轉(zhuǎn)化的字符串最少包含多少位數(shù)字。我們來(lái)看看剩下2個(gè)部分的含義吧:
標(biāo)識(shí):
'-' 在最小寬度內(nèi)左對(duì)齊,不可以與“用0填充”同時(shí)使用
'#' 只適用于8進(jìn)制和16進(jìn)制,8進(jìn)制時(shí)在結(jié)果前面增加一個(gè)0,16進(jìn)制時(shí)在結(jié)果前面增加0x
'+' 結(jié)果總是包括一個(gè)符號(hào)(一般情況下只適用于10進(jìn)制,若對(duì)象為BigInteger才可以用于8進(jìn)制和16進(jìn)制)
' ' 正值前加空格,負(fù)值前加負(fù)號(hào)(一般情況下只適用于10進(jìn)制,若對(duì)象為BigInteger才可以用于8進(jìn)制和16進(jìn)制)
'0' 結(jié)果將用零來(lái)填充
',' 只適用于10進(jìn)制,每3位數(shù)字之間用“,”分隔
'(' 若參數(shù)是負(fù)數(shù),則結(jié)果中不添加負(fù)號(hào)而是用圓括號(hào)把數(shù)字括起來(lái)(同‘+’具有同樣的限制)
轉(zhuǎn)換方式:
d-十進(jìn)制 o-八進(jìn)制 x或X-十六進(jìn)制
上面的說(shuō)明過(guò)于枯燥,我們來(lái)看幾個(gè)具體的例子。需要特別注意的一點(diǎn)是:大部分標(biāo)識(shí)字符可以同時(shí)使用。
System.out.println(String.format("%1$,09d", -3123));
System.out.println(String.format("%1$9d", -31));
System.out.println(String.format("%1$-9d", -31));
System.out.println(String.format("%1$(9d", -31));
System.out.println(String.format("%1$#9x", 5689));
//結(jié)果為:
//-0003,123
// -31
//-31
// (31)
// 0x1639
2.對(duì)浮點(diǎn)數(shù)進(jìn)行格式化:%[index$][標(biāo)識(shí)][最少寬度][.精度]轉(zhuǎn)換方式
我們可以看到,浮點(diǎn)數(shù)的轉(zhuǎn)換多了一個(gè)“精度”選項(xiàng),可以控制小數(shù)點(diǎn)后面的位數(shù)。
全程面授,不高薪都難
申請(qǐng)成功后,我們將在24小時(shí)內(nèi)與您聯(lián)系
招生熱線(xiàn): 4008-0731-86 / 0731-82186801
學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)
Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有
湘ICP備14017520號(hào)-3