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格式中較短的一種輸出,且不輸出無意義的零。

更多乾貨筆記關注微信公眾號 : 老九學堂