Java 程式設計(一)  第 二章 Java 程式架構與輸入/輸出  上一頁    下一頁

 

2-5 格式化輸出

內容:

  • 2-5-1 格式化輸出方法 - printf

  • 2-5-2 範例研討:列印格式範例

  • 2-5-3 範例研討:不同資料格式輸出

  • 2-5-4 範例研討:印出漂亮的購物清單

2-5-1 格式化輸出方法 - printf

許多情況下,我們希望列印出來的資料能排列整齊,如此不但較為美觀,也較容易閱讀,這就必須仰賴格式化輸出方法:System.out.printf()。其實,printf C 語言的 printf 非常類似,列印時需分辨數值的資料型態,再依此設定列印格式,語法如下:

System.out.printf(“列印文字與格式”, 變數_1, 變數_2, …);

左右括號內引數包含兩種資料,一者由兩個雙引號包起來("…. ")的是文字直接輸出,以及列印變數的資料型態與指定格式;另一者為一連串所欲輸出的變數。變數的列印格式由 % 作為標頭記號,每一個 % 表示一個變數內容;也就是說,有幾個變數輸出,就需要同樣多個 % 表示每一變數的輸出型態,較常用的輸出型態如表 2-3 所示。

2-3 printf 列印格式

列印格式

輸出敘述

列印格式

輸出敘述

%c

字元

%o

8 進位整數

%d

十進位整數

%x

16 進位整數

%5d

5 個位置整數

\n

跳行

%s

字串

\t

Tab

%f

浮點數列印

\'

印出單引號

%5.2f

5 位數及2 小數點

\"

印出雙引號

%.2f

浮點數及2小數點

\\

印出反斜線

2-5-2 範例研討:列印格式範例

(A)   程式功能:Ex2_4

2-11 printf 的範例,列印順序如下,將變數 car 內容以字串格式(%s)印出,接著再印出『 定價是 』(注意,空白格也要印出),再將變數 price 內容以整數格式(%d)印出,並印出『 萬元』,最後將游標跳到下一行(\n)。

 

2-11 printf 列印範例

B程式範例:

01

02

03

04

05

06

07

public class Ex2_4 {

        public static void main(String[] args) {   

        String car = "CRV 休旅車";

        int price = 75;

        System.out.printf("%s 定價是 %d 萬元\n", car, price);

        }

}

2-5-3 範例研討:不同資料格式輸出

A程式功能:Ex2_5.java

請製作一只程式,它會要求使用者輸入一個整數,再以 10 進位、8 進位、16 進位與浮點數格式印出該數值的內容,如下所示:

請輸入一個整數 =>32

         10 進位表示 = 32

         16 進位表示 = 20

         8 進位表示 = 40

         浮點數表示 = 32.00

B製作技巧分析

由鍵盤(System.in)讀入一個整數,並將其儲存於 value 變數內,再 10 進位(%d)、8 進位(%o)、16 進位(%x)與浮點數(%f)格式分別印出。

C程式範例:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

// Ex2_5.java

import java.util.*;

public class Ex2_5 {

        public static void main (String[] args) {   

        Scanner keyin = new Scanner(System.in);

        int value;

        System.out.printf("請輸入一個整數 =>");

        value = keyin.nextInt();

        System.out.printf("\t 10 進位表示 = %d\n", value);

        System.out.printf("\t 16 進位表示 = %x\n", value);

        System.out.printf("\t 8 進位表示 = %o\n", value);

        System.out.printf("\t 浮點數表示 = %.2f\n", (float)value);

        }

}

2-5-4 自我挑戰:印出漂亮的購物清單

A程式功能:PM2_2.java

如同 Ex2_2.java 範例,但我們希望印出比較漂亮的格式,如下:

品名    數量   單價   小計

=============================

酥餅    50     20     1000

脆笛酥  30    100     3000

=============================

總計 = 4000

B製作技巧提示:

如同範例 Ex2_3.java(請複製 Ex2_3.java 來修改),吾人取用一些變數儲存相關資料(name1 = "酥餅" price1 = 50num1 = 20name2 = "脆笛酥" price2 = 30 num2 = 100),再宣告 sum1=price1 * num1)與 sum2=price2 * num2)變數作為兩產品的總額。最後利用格式化輸出 printf 印出相關資料,程式片段如下:

01

02

03

04

05

06

07

08

09

10

11

12

…..

    int sum1 = price1 * num1;

     int sum2 = price2 * num2;

     System.out.printf("品名\t數量\t單價\t小計\n");

     System.out.printf("=============================\n");

     System.out.printf("%s\t%d\t%d\t%d\n", name1, price1, num1, sum1);

     System.out.printf("%s\t%d\t%d\t%d\n", name2, price2, num2, sum2);

     System.out.printf("=============================\n");

     System.out.printf("總計 = %d\n", sum1+sum2);

.....

 

翻轉工作室:粘添壽

 

Java 程式設計(一) 含程式邏輯

 

 

翻轉電子書系列: