|
2-7
掃描鍵盤輸入
內容:
利用
BufferedReader 所產生物件(如
keyin)的讀取輸入方法是
readLine(),readLine()
功能是一次讀取一行資料;也就是說,無論使用者由鍵盤鍵入多少字元,敲入『Enter』鍵之後,一次將所有字元讀入。如果,吾人希望由鍵盤上一次輸入多個資料,再敲入『Enter』鍵,系統再分別讀入,可以另一個掃瞄輸入Scanner)套件才可以。
2-7-1
掃描輸入套件
– Scanner
Scanner
是屬於 java.util
套件的類別,不需指定異常狀態處理(如
throws IOException);導入套件與宣告語法如下:
n
套件名稱:java.util.Scanner;
n
物件宣告產生:Scanner in =
new Scanner(System.in);
圖 2-13
為引用Scanner
套件的範例,吾人在連續輸入三筆資料,之間利用空白格(Space)隔離,可利用三個讀取方法(next()、nextInt()
與
nextFloat())j分別讀取這三筆資料。表
2-5 為
Scanner 常用的類別方法。

圖 2-13
Scanner
套件的運作程序
表
2-5 Scanner
類別的輸入方法(物件名稱為 keyin)
|
輸入方法 |
功能敘述 |
|
keyin.nextLine() |
讀入一行字串 |
|
keyin.next() |
讀入一個字串 |
|
keyin.nextInt() |
讀入一個整數 |
|
keyin.nextFloat() |
讀入一個浮點數 |
|
keyin.nextDouble() |
讀入一個雙倍浮點數 |
|
keyin.useDelimiter(“;”) |
設定分隔符號,如分號(;) |
值得注意的是,上述各種讀取方法大多已指定資料型態,如果讀取方法與輸入資料的型態不符合的話,將會出現執行錯誤(Run-time
error)。另外,useDelimiter()
方法是設定輸入行的分隔記號,即是當每一行包含多項資料時,資料項之間的分隔記號為何。較常見的分隔記號有:空格(space,一個或多個皆相同)、分號(;)或冒號(:);如果沒有特殊指定大多採用空白鍵(第八章有範例說明)。
2-7-2
範例研討:登錄客戶資料
(A)程式功能:Ex2_7.java
請製作一套登錄客戶資料的雛形軟體,系統要求輸入客戶資料後,再印出輸入結果,觀察是否正確,期望操作格式如下所示:
|
請輸入客戶資料(姓名
年齡
消費金額)
=>張大銘
22 45000
客戶資料如下:
客戶姓名:
張大銘
客戶年齡:
22
消費金額:
45000.00
|
(B)製作技巧分析:
本系統要求每一筆資料必須連續輸入,一直到敲入『Enter』鍵後結束,必須採用
Scanner
類別才可達成。輸入資料的順序是姓名(字串,
String)、年齡(整數,
int)、最後是消費金額(浮點數,
float),讀取時,資料格式也不可弄混(next()、nextInt()、nextFloat())。
(C)程式範例:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17 |
// Ex2_7.java
import java.util.Scanner;
public class Ex2_7 {
public static void main(String args[]) {
Scanner keyin = new Scanner(System.in);
System.out.print("請輸入客戶資料(姓名
年齡
消費金額)
=>");
String name = keyin.next();
int age = keyin.nextInt();
float costs = keyin.nextFloat();
System.out.printf("客戶資料如下:
\n\n");
System.out.printf("客戶姓名:
%s\n", name);
System.out.printf("客戶年齡:
%d\n", age);
System.out.printf("消費金額:
%.2f\n", costs);
}
} |
2-7-3
自我挑戰:製作單位名片
(A)程式功能:PM2_5.java
請製作某一單位的名片製作軟體,系統要求使用者輸入名片擁有人的工作單位與、姓名與電話,則印出名片格式如下:
|
請輸入職位名稱
=>程式設計小組
請輸入姓名
=>
張大得
請輸入電話
=>(07)
74312134 ext 231
名片列印如下:
------------------------------------
台灣遊戲軟體發展協會
程式設計小組
張大得
電話:
(07) 74312134 ext 231
地址:
高雄縣鳥松鄉澄清路
840
號
------------------------------------- |
(B)製作技巧提示:
首先宣告鍵盤輸入物件(keyin)和三個字串變數(String);再由鍵盤輸入名片主人的姓名(name,張大名)、職位(position,程式設計工作小組)與電話(tel)。接著再設計並印出名片格式,程式提示如下:
|
01
02
03
04
05
06
07
08
09
10 |
……
System.out.printf("名片列印如下:\n");
System.out.printf("------------------------------------\n");
System.out.printf("台灣遊戲軟體發展協會
\n");
System.out.printf("%s\n\n",
position);
System.out.printf("\t%s\n\n",
name);
System.out.printf("電話:
%s\n",
tel);
System.out.printf("地址:
高雄縣鳥松鄉澄清路
840
號\n");
System.out.printf("-------------------------------------\n");
…. |
|