MySQL系列:日誌
阿新 • • 發佈:2022-03-23
Scanner物件
Java給我們提供了這樣一個工具類,我們可以獲取使用者的輸入。
建立 Scanner 物件的基本語法:
Scanner s = new Scanner(System.in);
next & nextLine
在資料輸入中,通過Scanner類的next()與nextLine()方法獲取輸入的字串,在讀取前一般需要使用hasNext()與hasNextLine()判斷是否還有輸入的資料
使用next方式接收輸入的資料
package Demo; import java.util.Scanner; //匯入Scanner類 public class Hello { public static void main(String[] args) { //建立一個掃描器物件,用於接收鍵盤資料 Scanner scanner = new Scanner(System.in); System.out.println("請輸入資料"); //判斷使用者有沒有輸入資料 if (scanner.hasNext()){ //用next方式接收 String str = scanner.next(); System.out.println("輸入的內容為:"+str); scanner.close(); //IO流的類用完即時以關掉節省資源 } } }
測試資料:Hello World!
結果:只輸出了Hello
使用nextLine()方式接收輸入的資料
public static void main(String[] args) { //建立一個掃描器物件,用於接收鍵盤資料 Scanner scanner = new Scanner(System.in); System.out.println("請輸入資料"); //判斷使用者有沒有輸入資料 if (scanner.hasNextLine()){ //用next方式接收 String str = scanner.nextLine(); System.out.println("輸入的內容為:"+str); scanner.close(); //IO流的類用完即時以關掉節省資源 } }
測試資料:Hello World
結果:輸出了Hello World
區別
next():
- 對輸入有效字元之前遇到的空白,next() 方法會自動將其去掉。
- 輸入有效字元後next() 方法會將其後面輸入的空白作為結束符。
nextLine():
- 以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元。
- 可以獲得空白。
使用其他方式接收輸入的資料
如果要輸入 int 或 float 型別的資料,在 Scanner 類中也有支援,但是在輸入之前最好先使用
hasNextXxx() 方法進行驗證,再使用 nextXxx() 來讀取:
package Demo; import java.util.Scanner; //匯入Scanner類 public class Hello { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 從鍵盤接收資料 int i = 0; float f = 0.0f; System.out.print("輸入整數:"); if (scan.hasNextInt()) { //與next()的區別:nextInt()只讀取數值 // 判斷輸入的是否是整數 i = scan.nextInt(); // 接收整數 System.out.println("整數資料:" + i); } else { // 輸入錯誤的資訊 System.out.println("輸入的不是整數!"); } System.out.print("輸入小數:"); if (scan.hasNextFloat()) { // 判斷輸入的是否是小數 f = scan.nextFloat(); // 接收小數 System.out.println("小數資料:" + f); } else { // 輸入錯誤的資訊 System.out.println("輸入的不是小數!"); } scan.close(); } } //含有bug待解