1. 程式人生 > 其它 >MySQL系列:日誌

MySQL系列:日誌

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待解