1. 程式人生 > >Java Scanner類的常用方法及用法(很詳細)

Java Scanner類的常用方法及用法(很詳細)

Java Scanner類的方法及用法(很詳細)

Scanner類簡介

Java 5添加了java.util.Scanner類,這是一個用於掃描輸入文字的新的實用程式。它是以前的StringTokenizer和Matcher類之間的某種結合。由於任何資料都必須通過同一模式的捕獲組檢索或通過使用一個索引來檢索文字的各個部分。於是可以結合使用正則表示式和從輸入流中檢索特定型別資料項的方法。這樣,除了能使用正則表示式之外,Scanner類還可以任意地對字串和基本型別(如int和double)的資料進行分析。藉助於Scanner,可以針對任何要處理的文字內容編寫自定義的語法分析器。

Scanner類的常用方法1

Scanner類的常用方法
其實上圖的意思就是,比如:nextlnt():只讀取int值,就是隻能讀取整數型別的資料,如果輸入了非整型的資料(浮點型字串等)就會報錯。
nextFloat()、nextDouble()這些也是以此類推,只能讀取符合該型別的資料。

此處重點講一下next()和nextLine()的區別

next():只讀取輸入直到空格。它不能讀兩個由空格或符號隔開的單詞。此外,next()在讀取輸入後將游標放在同一行中。(next()只讀空格之前的資料,並且游標指向本行)

nextLine():讀取輸入,包括單詞之間的空格和除回車以外的所有符號(即。它讀到行尾)。讀取輸入後,nextLine()將游標定位在下一行。

程式碼演示:
public class Text {
    public static void main(String []args) {
        Scanner input = new Scanner(System.in);
        System.out.println("請輸入一個字串(中間能加空格或符號)");
        String a = input.nextLine();
        System.out.println("請輸入一個字串(中間不能加空格或符號)");
        String b = input.next();
        System.out
.println("請輸入一個整數"); int c; c = input.nextInt(); System.out.println("請輸入一個double型別的小數"); double d = input.nextDouble(); System.out.println("請輸入一個float型別的小數"); float f = input.nextFloat(); System.out.println("按順序輸出abcdf的值:"); System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); System.out.println(f); } }

執行結果:

請輸入一個字串(中間能加空格或符號)
我愛祖國!
請輸入一個字串(中間不能加空格或符號)
ILoveChina
請輸入一個整數
520
請輸入一個double型別的小數
12.26e3
請輸入一個float型別的小數
3.1415926
按順序輸出abcdf的值:
我愛祖國!
ILoveChina
520
12260.0
3.1415925

Scanner類的常用方法2

這裡寫圖片描述

程式碼演示:
public class inputInformation {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);  //構造Scanner類的物件scan,接收從控制檯輸入的資訊
        System.out.println("請輸入你的姓名");
        String name = scan.nextLine();//接收一個字串,可以加除Enter以為的所有符號,包括空格和Tab
        System.out.println("請輸入你的ID");
        String ID ;
        while(scan.hasNextLine()) {// hasNextLine()方法判斷當前是否有輸入,當鍵盤有輸入後執行迴圈
            if(scan.hasNextInt()) {// 判斷輸入的值是否為整數型別,當為整數型別時執行迴圈
                ID = scan.nextLine();
                System.out.println("你輸入的姓名為:"+name);
                System.out.println("你輸入的ID為:"+ID);
                break;
            }else {
                System.out.println("請輸入數字哦!");
                ID = scan.nextLine();
                continue;
            }
        }
    }
}

執行結果如下:

請輸入你的姓名
西地那非
請輸入你的ID
q764323221
請輸入數字哦!
764323221