在開(kāi)發(fā)中,我們可能經(jīng)常這樣用到String的格式化String.format("%s完成%d個(gè)杖爽,剩余%d個(gè)",name,num1,num2)
這樣用,或者是加上位置符的String.format("%1$s完成%2$d個(gè),剩余%3$d個(gè)",name,num1,num2)
,最近用到想要用到補(bǔ)0用%2d
結(jié)果被位是空格毛好,查了下資料原來(lái)要用%02d
,順便記錄下偿警。
format()方法有兩種重載形式躏救。
format(String format, Object... args)
新字符串使用本地語(yǔ)言環(huán)境,制定字符串格式和參數(shù)生成格式化的新字符串户敬。
format(Locale locale, String format, Object... args)
使用指定的語(yǔ)言環(huán)境落剪,制定字符串格式和參數(shù)生成格式化的字符串。
常規(guī)類(lèi)型的格式化
轉(zhuǎn)換符 | 詳細(xì)說(shuō)明 | 示例 |
---|---|---|
%s | 字符串類(lèi)型 | “喜歡請(qǐng)收藏” |
%c | 字符類(lèi)型 | ‘m’ |
%b | 布爾類(lèi)型 | true |
%d | 整數(shù)類(lèi)型(十進(jìn)制) | 88 |
%x | 整數(shù)類(lèi)型(十六進(jìn)制) | FF |
%o | 整數(shù)類(lèi)型(八進(jìn)制) | 77 |
%f | 浮點(diǎn)類(lèi)型 | 8.888 |
%a | 十六進(jìn)制浮點(diǎn)類(lèi)型 | FF.35AE |
%e | 指數(shù)類(lèi)型 | 9.38e+5 |
%g | 通用浮點(diǎn)類(lèi)型(f和e類(lèi)型中較短的) | 不舉例(基本用不到) |
%h | 散列碼 | 不舉例(基本用不到) |
%% | 百分比類(lèi)型 | %(%特殊字符%%才能顯示%) |
%n | 換行符 | 直接用就行了尿庐,不用傳參 |
%tx | 日期與時(shí)間類(lèi)型(x代表不同的日期與時(shí)間轉(zhuǎn)換符) | 見(jiàn)后面的表 |
搭配轉(zhuǎn)換符的標(biāo)志
標(biāo)志 | 說(shuō)明 | 示例 | 結(jié)果 |
---|---|---|---|
+ | 為正數(shù)或者負(fù)數(shù)添加符號(hào) | (“%+d”,15) | +15 |
0 | 數(shù)字前面補(bǔ)0(加密常用) | (“%04d”, 99) | 0099 |
空格 | 在整數(shù)之前添加指定數(shù)量的空格 | (“% 4d”, 99) | 99 |
, | 以“,”對(duì)數(shù)字分組(常用顯示金額) | (“%,f”, 9999.99) | 9,999.990000 |
( | 使用括號(hào)包含負(fù)數(shù) | (“%(f”, -99.99) | (99.990000) |
# | 如果是浮點(diǎn)數(shù)則包含小數(shù)點(diǎn)忠怖,如果是16進(jìn)制或8進(jìn)制則添加0x或0 | (“%#x”, 99)(“%#o”, 99) | 0x63 0143 |
< | 格式化前一個(gè)轉(zhuǎn)換符所描述的參數(shù) | (“%f和%<3.2f”, 99.45) | 99.450000和99.45 |
$ | 被格式化的參數(shù)索引 | ("%1$d,%2$s", 99,"abc") | 99,abc |
日期和事件字符串格式化
在程序界面中經(jīng)常需要顯示時(shí)間和日期,但是其顯示的 格式經(jīng)常不盡人意抄瑟,需要編寫(xiě)大量的代碼經(jīng)過(guò)各種算法才得到理想的日期與時(shí)間格式凡泣。字符串格式中還有%tx轉(zhuǎn)換符沒(méi)有詳細(xì)介紹,它是專(zhuān)門(mén)用來(lái)格式化日期和時(shí) 間的皮假。%tx轉(zhuǎn)換符中的x代表另外的處理日期和時(shí)間格式的轉(zhuǎn)換符鞋拟,它們的組合能夠?qū)⑷掌诤蜁r(shí)間格式化成多種格式。
常見(jiàn)日期和時(shí)間組合的格式惹资,如圖所示贺纲。
標(biāo)志 | 說(shuō)明 | 示例 |
---|---|---|
c | 包括全部日期和時(shí)間信息 | 星期六 十月 27 14:21:20 CST 2007 |
F | “年-月-日”格式 | 2007-10-27 |
D | “月/日/年”格式 | 10/27/07 |
r | “HH:MM:SS PM”格式(12時(shí)制) | 02:25:51 下午 |
T | “HH:MM:SS”格式(24時(shí)制) | 14:28:16 |
R | “HH:MM”格式(24時(shí)制) | 14:28 |
格式化時(shí)間字符串的轉(zhuǎn)換符如圖所示
標(biāo)志 | 說(shuō)明 | 示例 |
---|---|---|
c | 包括全部日期和時(shí)間信息 | 星期六 十月 27 14:21:20 CST 2007 |
F | “年-月-日”格式 2007-10-27 | |
D | “月/日/年”格式 10/27/07 | |
r | “HH:MM:SS PM”格式(12時(shí)制) | 02:25:51 下午 |
T | “HH:MM:SS”格式(24時(shí)制) | 14:28:16 |
R | “HH:MM”格式(24時(shí)制) | 14:28 |