1. 程式人生 > >3.7.2 格式化輸出

3.7.2 格式化輸出

    可以使用System.out.print(x)將數值x輸出到控制檯上。這條命令將以x對應的資料型別所允許的最大非0數字位數列印輸出x。例如:             double x = 10000.0 / 3;             System.out.println(x);   // 3333.3333333333335       Java SE 5.0沿用了C語言庫函式中的printf方法。例如,呼叫             double x = 10000.0 / 3;             System.out.printf("%8.2f",x);   // 3333.33             double x1 = 10000000000.0 / 3;             System.out.printf("%8.2f",x1);   // 3333333333.33       %8.2f的含義是可以用8個字元的寬度和小數點後兩個字元的精度列印x。也就是說,列印輸出一個空格和7個字元(包括小數點)。當然,如果結果的總位數超過8,還是整數部分按實際展示,小數部分還是隻顯示2位。       在printf中,可以使用多個引數,例如:         System.out.printf("Hello,%s. Next year . you'll be %d", name, age);                 Scanner sc = new Scanner(System.in);                          System.out.println("請輸入您的姓名");             String name = sc.nextLine();             System.out.println("請輸入您的年齡");             int age = sc.nextInt();                          System.out.printf("Hello, %s. Next year . you'll be %d .", name, age);       每一個以%字元開始的格式說明符都用相應的引數替換。  
轉換符 型別 舉例
d 十進位制整數 159
x 十六進位制整數 9f
o 八進位制整數 237
f 定點浮點數 15.9
e 指數浮點數 1.59e+01
g 通用浮點數 1537.00
a 十六進位制浮點數 0x1.fccdp3
s 字串 Hello
c 字元 H
b 布林 True
h 雜湊碼 42628b2
tx或Tx 日期時間 已經過時,應當改為使用java.time類
% 百分號 %
n 與平臺有關的行分隔符 --
      另外,還可以給出控制格式化輸入的各種標誌。例如,逗號標誌增加了分組的分隔符。  
標誌 目的 舉例
+ 列印正數和負數的符號"%+f",e  
空格 在正數之前新增空格"% 10d",e | 3333.33|
0 數字前面補0"%010d",e 003333.33
- 左對齊 |3333.33  |
( 將負數括在括號內 (3333.33)
, 新增分組分隔符 3,333.33
#(對於f格式) 包含小數點 3,333.
#(對於x或0格式) 新增字首0x或0 0xcafe
$ 給定被格式化的引數索引。例如,%1$d, %1$x將以十進位制和十六進位制格式列印第一個引數"%1$x",e 159 9f
< 格式化前面說明的數值,例如,%d%<x以十進位制和十六進位制列印同一個數值"%d %<x",e 159 9f
       註釋:可以使用s轉換符格式化任意的物件。對於任意實現了Formattable介面的物件都將呼叫formatTo方法;否則將呼叫toString方法,它可以將物件轉換為字串。