首頁 >Java >java教程 >java scanner用法詳解

java scanner用法詳解

藏色散人
藏色散人原創
2020-05-30 11:39:1810189瀏覽

java scanner用法詳解

java scanner用法明解

Java Scanner 類別

##java .util.Scanner 是Java5 的新特徵,我們可以透過Scanner 類別來取得使用者的輸入。

下面是建立Scanner 物件的基本語法:

Scanner s = new Scanner(System.in);

接下來我們示範一個最簡單的資料輸入,並透過Scanner 類別的next() 與nextLine() 方法取得輸入的字符串,在讀取前我們一般需要使用hasNext 與hasNextLine 判斷是否還有輸入的資料:

使用next 方法:

ScannerDemo.java 檔案程式碼:

import java.util.Scanner; 
 
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 从键盘接收数据
 
        // next方式接收字符串
        System.out.println("next方式接收:");
        // 判断是否还有输入
        if (scan.hasNext()) {
            String str1 = scan.next();
            System.out.println("输入的数据为:" + str1);
        }
        scan.close();
    }
}

執行上述程式輸出結果為:

$ javac ScannerDemo.java
$ java ScannerDemo

next方式接收:

runoob com

輸入的資料為:runoob

可以看到com 字串並未輸出,接下來我們看nextLine。

使用nextLine 方法:

ScannerDemo.java 檔案程式碼:

import java.util.Scanner;
 
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 从键盘接收数据
 
        // nextLine方式接收字符串
        System.out.println("nextLine方式接收:");
        // 判断是否还有输入
        if (scan.hasNextLine()) {
            String str2 = scan.nextLine();
            System.out.println("输入的数据为:" + str2);
        }
        scan.close();
    }
}

執行上述程式輸出結果為:

$ javac ScannerDemo.java
$ java ScannerDemo

nextLine方式接收:

runoob com

輸入的資料為:runoob com

可以看到com 字串輸出。

next() 與nextLine() 區別

next():

1、一定要讀取到有效字元後才可以結束輸入。

2、輸入有效字元之前遇到的空白,next() 方法會自動將其移除。

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

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

nextLine():

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

2、可以得到空白。

如果要輸入int 或float 類型的數據,在Scanner 類別中也有支持,但是在輸入之前最好先使用hasNextXxx() 方法進行驗證,再使用nextXxx() 來讀取:

ScannerDemo.java 檔案程式碼:

import java.util.Scanner;
 
public class ScannerDemo {
    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()) {
            // 判断输入的是否是整数
            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();
    }
}

執行上述程式輸出結果為:

$ javac ScannerDemo.java
$ java ScannerDemo
输入整数:12
整数数据:12
输入小数:1.2
小数数据:1.2

以下實例我們可以輸入多個數字,並求其總和與平均數,每輸入一個數字以回車確認,透過輸入非數字來結束輸入並輸出執行結果:

ScannerDemo.java 檔案程式碼:

import java.util.Scanner;
 
class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
 
        double sum = 0;
        int m = 0;
 
        while (scan.hasNextDouble()) {
            double x = scan.nextDouble();
            m = m + 1;
            sum = sum + x;
        }
 
        System.out.println(m + "个数的和为" + sum);
        System.out.println(m + "个数的平均值是" + (sum / m));
        scan.close();
    }
}

執行上述程式輸出結果為:

$ javac ScannerDemo.java
$ java ScannerDemo
12
23
15
21.4
end
4个数的和为71.4
4个数的平均值是17.85

推薦:《

java學習

以上是java scanner用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn