Java Scanner 類:用戶輸入的入門
簡介
你好,熱心的學習者!今天,我們將深入探討 Java 程式設計中最有用的工具之一:Scanner 類。將 Scanner 類視為一款幫助你的程式與用戶溝通的友好助手。這就像擁有一個記錄用戶所輸入一切的私人秘書!
當我第一次開始教 Java 時,我注意到許多學生在用戶輸入方面遇到了困難。但一旦他們掌握了 Scanner 類,就像是看見他們頭上亮起了一盞燈泡。所以,讓我們一起踏上這個令人興奮的旅程吧!
類別聲明
在我們開始使用我們的「秘書」之前,我們需要告訴 Java 我們想要使用 Scanner 類。我們通過在程式的開頭添加一行特殊代碼來實現這一點:
import java.util.Scanner;
這行代碼就像告訴 Java,「嘿,我需要你工具箱裡的那個 Scanner 东西!」當你想使用 Scanner 時,記得總是包含這行代碼。
類別構造函數
現在,我們已經告訴 Java 我們想要使用 Scanner,我們需要創建我們的 Scanner 物件。這就像僱用我們的秘書並給他們一個名字。這樣做:
Scanner myScanner = new Scanner(System.in);
讓我們分解一下:
-
Scanner
是我們創建的物件類型 -
myScanner
是我們給我們的 Scanner 物件的名字(你可以隨意選擇) -
new Scanner(System.in)
是創建一個新的 Scanner,它將從系統(鍵盤)讀取輸入
類別方法
我們的 Scanner「秘書」具有多種技能(方法)來幫助我們收集不同類型的輸入。以下是一些最常見的使用方法:
方法 | 描述 |
---|---|
nextLine() | 讀取一行文字(字符串) |
nextInt() | 讀取一個整數 |
nextDouble() | 讀取一個雙精度數(小數) |
nextBoolean() | 讀取一個布爾值(true/false) |
next() | 讀取下一個單詞 |
繼承的方法
Scanner 類也從其父類中繼承了一些方法。現在不必過於擔心這些,但知道它們存在是好的:
方法 | 描述 |
---|---|
clone() | 創建 Scanner 的副本 |
equals() | 將此 Scanner 與另一個物件比較 |
finalize() | 為垃圾回收準備 Scanner |
hashCode() | 返回此 Scanner 的哈希碼 |
toString() | 返回 Scanner 的字符串表示形式 |
使用 Scanner 類從控制台讀取行範例
現在,讓我們通過一個簡單的範例將我們的新知識付諸實踐:
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
// 創建一個 Scanner 物件
Scanner myScanner = new Scanner(System.in);
// 提示用戶輸入他們的名字
System.out.println("你的名字是什麼?");
// 讀取用戶的輸入
String name = myScanner.nextLine();
// 打印一個問候
System.out.println("你好," + name + "!歡迎來到 Java 程式設計!");
// 關閉 Scanner
myScanner.close();
}
}
讓我們分解一下:
- 我們導入 Scanner 類。
- 我們創建一個名為
myScanner
的 Scanner 物件。 - 我們將一個問題打印到控制台。
- 我們使用
nextLine()
讀取用戶的輸入,並將其存儲在name
變量中。 - 我們使用用戶輸入的名字打印一個問候。
- 我們關閉 Scanner 以釋放資源。
輸出
當你運行這個程序時,它的輸出將會類似這樣:
你的名字是什麼?
Alice
你好,Alice!歡迎來到 Java 程式設計!
這不是很酷嗎?就像與你的計算機進行對話一樣!
一個小心的建議
這裡有一個來自我教學經驗的小故事。有一次,一個學生在程序的結束時忘記關閉他們的 Scanner。起初一切看起來都很好,但當他們稍後運行一個更複雜的程序時,開始發生奇怪的事情!記得在完成 Scanner 使用後關閉它,就像你在一天結束時解雇你的秘書一樣。
結論
恭喜你!你剛剛踏入 Java 世界中的用戶輸入。Scanner 類是一個強大的工具,它將允許你創建有交互性的程序。記住,熟能生巧。試著創建有不同類型輸入要求的程序 - 也許是一個詢問數字的計算器,或者是一個問問題的益智遊戲!
在你繼續你的 Java 旅程時,你將會發現更多令人興奮的功能。但現在,給自己一個鼓勵。你不再只是與計算機對話 - 你正在與它進行對話!
Credits: Image by storyset