Java-再議printf函數
- 2019 年 10 月 6 日
- 筆記
System.out.printf() 是在JDK1.5版開始引入的方法,即在JDK1.5以後的版本才可以使用此函數,printf 方法有 printf(String format, Object … args) 和 printf(Locale l, String format, Object … args) 兩種重載方式。其實學過C語言的小夥伴應該會覺得很親切,就是控制輸出的格式。目前printf支援以下格式:

下面是簡單的使用示例:

輸出結果為:

printf函數格式各項說明
print的格式控制的完整格式為:
% – 0 m.n l或h 格式字元
1.%:表示格式說明的起始符號,不可缺少;
2.-:有-表示左對齊輸出,如省略表示右對齊輸出
3.0:有0表示指定空位填0,如省略表示指定空位不填;
4.m.n:m指域寬,即對應的輸出項在輸出設備上所佔的字元數。N指精度。用於說明輸出的實型數的6.小數位數。為指定n時,隱含的精度為n=6位
5.l或h:l對整型指long型,對實型指double型。h用於將整型的格式字元修正為short型。
格式字元
格式字元用以指定輸出項的數據類型和輸出格式。
1.d格式:用來輸出十進位整數。有以下幾種用法:
%d:按整型數據的實際長度輸出;
%md:m為指定的輸出的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
%ld:輸出長整形數據
2.o格式:以無符號八進位形式輸出整數。對長整型可以用「%lo」格式輸出。同樣也可以指定輸出寬度用[%mo]格式輸出。
比如:
main(){
int a = -1;
printf("%d , %o",a,a);
}
運行結果:
-1 , 177777
3.x格式:以無符號十六進位形式輸出整數。對長整型可以用「%lx」格式輸出。同樣也可以指定輸出寬度用「%mx」格式輸出。
4.u格式:以無符號十進位形式輸出整數。對長整型可以用「%lu」格式輸出。同樣可以指定輸出寬度用[%mu]格式輸出。
5.c格式:輸出一個字元
6.s格式:用來輸出一個字元串,這裡有幾種方法:
6.1.%s:例如:printf("%s","CHINA")輸出"CHINA"字元串;
6.2.%ms:輸出的字元串佔m列,如字元串本身長度大於m,則突破m的限制,將字元串全部輸出。若串長小於m,則左補上空格;
6.3.%-ms:如果串長小於m,則在m列範圍內,字元串向左靠,右補以空格;
6.4.%m.ns:輸出佔m列,但只取字元串中左端n個字元,這n個字元輸出在m列的右側,左補以空格;
6.5.%-m.ns:其中m、n含義同上,n個字元串輸出在m列範圍的左側,右補以空格。如果 n > m,則自動取n值,即保證n個字元正常輸出。
7.f格式:用來輸出實數(包括單、雙精度),以小數形式輸出。有以下幾種用法:
7.1.%f:不指定寬度,整數部分全部輸出並出輸出6位小數;
7.2.%m.nf:輸出共佔m列,其中有n位小數,如數值寬度小於m左端輔以空格;
7.3.%-m.nf:輸出共佔n列,其中有n位小數,如數值寬度小於m右端輔以空格。
8.e格式:以指數形式輸出實數。可用以下形式:
8.1.%e數字部分輸出6位小數,指數部分佔5位或4位;
8.2.%m.ne和%-m.ne:此處n指數據的數字部分的小數位數,m表示整個輸出數據所佔的寬度。
9.g格式:自動選f格式或e格式中較短的一種輸出,且不輸出無意義的零。
更多乾貨筆記關注微信公眾號 : 老九學堂