字符串格式化:String.format()

常規(guī)類型的格式化

String類的format()方法用于創(chuàng)建格式化的字符串以及連接多個(gè)字符串對(duì)象。熟悉C語(yǔ)言的讀者應(yīng)該記得C語(yǔ)言的sprintf()方法,兩者有類似之處。format()方法有兩種重載形式。

1 format(String format, Object... args)

該方法使用指定的字符串格式和參數(shù)生成格式化的新字符串。 新字符串始終使用本地語(yǔ)言環(huán)境。例如當(dāng)前日期信息在中國(guó)語(yǔ)言環(huán)境中的表現(xiàn)形式為“2007-10-27”,但是在其他國(guó)家有不同的表現(xiàn)形式。

語(yǔ)法:

String.format(format,args...)

format:字符串格式。

args...:字符串格式中由格式說明符引用的參數(shù)。如果還有格式說明符以外的參數(shù),則忽略這些額外的參數(shù)。參數(shù)的數(shù)目是可變的,可以為0。

2 format(Locale locale, String format, Object... args)

該方法使用指定的語(yǔ)言環(huán)境、字符串格式和參數(shù)生成一個(gè)格式化的新字符串。新字符串始終使用指定的語(yǔ)言環(huán)境。

語(yǔ)法:

String.format(locale,format,args...)

locale:指定的語(yǔ)言環(huán)境。

format:字符串格式。

args...:字符串格式中由格式說明符引用的參數(shù)。如果還有格式說明符以外的參數(shù),則忽略這些額外的參數(shù)。參數(shù)的數(shù)目是可變的,可以為0。

format()方法中的字符串格式參數(shù)有很多種轉(zhuǎn)換符選項(xiàng),例如:日期、整數(shù)、浮點(diǎn)數(shù)等。這些轉(zhuǎn)換符的說明如表7.1所示。

轉(zhuǎn)換符
    // Hi, jhon
    System.out.println(String.format("Hi, %s", "jhon"));
    // A, true, 9
    System.out.println(String.format("%c, %b, %d,%2f",'A',true,9,3.00));

這些字符串格式參數(shù)不但可以靈活將其他數(shù)據(jù)類型轉(zhuǎn)換成字符串,而且可以與各種標(biāo)志組合在一起,生成各種格式的字符串,這些標(biāo)志如表7.2所示。

轉(zhuǎn)換符標(biāo)志
    //左對(duì)齊 123       
    System.out.println(String.format("左對(duì)齊 %-10d",123));
    //數(shù)字前加空格:        123
    System.out.println(String.format("數(shù)字前加空格: % 10d",123));
    //數(shù)字前補(bǔ)零      0000000123
    System.out.println(String.format("數(shù)字前補(bǔ)零      %010d",123));
    // $ 格式化參數(shù)索引 1$表示第一個(gè)參數(shù)
    //$標(biāo)志:  111 , 222
    System.out.println(String.format("$標(biāo)志:  %1$d , %2$d",111,222));

日期和時(shí)間字符串格式化

在程序界面中經(jīng)常需要顯示時(shí)間和日期,但是其顯示的 格式經(jīng)常不盡人意,需要編寫大量的代碼經(jīng)過各種算法才得到理想的日期與時(shí)間格式。字符串格式中還有%tx轉(zhuǎn)換符沒有詳細(xì)介紹,它是專門用來格式化日期和時(shí) 間的。%tx轉(zhuǎn)換符中的x代表另外的處理日期和時(shí)間格式的轉(zhuǎn)換符,它們的組合能夠?qū)⑷掌诤蜁r(shí)間格式化成多種格式。

1.常見日期時(shí)間格式化

格式化日期與時(shí)間的轉(zhuǎn)換符定義了各種格式化日期字符串的方式,其中最常用的日期和時(shí)間的組合格式如表7.3所示。


常見日期和時(shí)間組合的格式
    Date date = new Date();
    //完整日期和時(shí)間:星期三 三月 07 14:10:34 GMT+08:00 2018
    System.out.println(String.format("完整日期和時(shí)間:%tc",date));
    //年-月-日格式:2018-03-07
    System.out.println(String.format("年-月-日格式:%tF",date));
    //月/日/年格式:03/07/18
    System.out.println(String.format("月/日/年格式:%tD",date));
    //HH:MM:SS PM格式:02:13:55 下午
    System.out.println(String.format("HH:MM:SS PM格式:%tr",date));
    //HH:MM:SS格式:14:13:55
    System.out.println(String.format("HH:MM:SS格式:%tT",date));
    //HH:MM格式:14:13
    System.out.println(String.format("HH:MM格式:%tR",date));

2.格式化日期字符串

定義日期格式的轉(zhuǎn)換符可以使日期通過指定的轉(zhuǎn)換符生成新字符串。這些日期轉(zhuǎn)換符如表7.4所示。


日期格式化轉(zhuǎn)換符

3.格式化時(shí)間字符串

和日期格式轉(zhuǎn)換符相比,時(shí)間格式的轉(zhuǎn)換符要更多、更精確。它可以將時(shí)間格式化成時(shí)、分、秒甚至?xí)r毫秒等單位。格式化時(shí)間字符串的轉(zhuǎn)換符如表7.5所示。


時(shí)間格式化轉(zhuǎn)換符

參考 http://kgd1120.iteye.com/blog/1293633

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容