1. 程式人生 > 其它 >流程控制-Scanner(1)

流程控制-Scanner(1)

Scanner物件

java.util.Scanner

我們可以通過Scanner類來獲取使用者的輸入

基本語法:

Scanner s = new Scanner(System.in);

通過Scanner類的next()與nextLine()方法獲取輸入的字串,z讀取前我們一般需要使用

hasNext()與hasNextLine()判斷是否還有輸入的資料

next()示例:

public class Demo01 {
    public static void main(String[] args) {
        //建立一個掃描器物件,用於接收鍵盤資料
      Scanner scanner =  new Scanner(System.in); //在IDEA中,enter鍵會自動帶入import java.util.Scanner;

        System.out.println("使用next方式接收:");

        //判斷使用者有沒有輸入字串
       if(scanner.hasNext()){
            String str = scanner.next();
            System.out.println("輸入的內容為:"+str);

          }

        //凡是屬於IO流的類,如果不關閉會一直佔用資源,要養成好的習慣;
        scanner.close();
    }
}

nextLine()示例:

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
         System.out.println("請輸入字元:");
         if (scanner.hasNextLine()){

             String str = scanner.nextLine();
             System.out.println("輸入的字元是:"+str);
         }
         scanner.close();
    }
}

註釋

  1. next()

    一定要督導有效字元後才可以結束輸入。

    對輸入有效字元前遇到的空白,next()方法會自動將其去掉。

    只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符。

    next()不能得到帶有空格的字串。

  2. nextLine()

    以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元

    可以獲得空白

  3. 也可以不加判斷直接輸出,示例如下:

    public class Demo03 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("請輸入字元:");
            String str = scanner.nextLine();
            System.out.println("輸入的內容是:"+str);
            scanner.close();
        }
    
    }