ホームページ > Java > &#&チュートリアル > Javaスキャナーの使い方を詳しく解説

Javaスキャナーの使い方を詳しく解説

藏色散人
リリース: 2020-05-30 11:39:18
オリジナル
10206 人が閲覧しました

Javaスキャナーの使い方を詳しく解説

#Java スキャナーの使用法の詳細な説明

#Java スキャナー クラス

java .util.Scanner は Java5 の新機能で、Scanner クラスを通じてユーザー入力を取得できます。

次は、Scanner オブジェクトを作成するための基本的な構文です。

Scanner s = new Scanner(System.in);
ログイン後にコピー

次に、最も単純なデータ入力を示し、Scanner の next() メソッドと nextLine() メソッドを通じて入力文字を取得します。クラス String を読み取る前に、通常、hasNext と hasNextLine を使用して入力データがまだあるかどうかを判断する必要があります:

次のメソッドを使用します:

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
ログイン後にコピー
ログイン後にコピー

ネクストモード受信:

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
ログイン後にコピー

次の例では、複数の数値を入力してその数値を見つけることができます。合計と平均 1 を入力するたびに Enter で数値を確定 数値以外を入力して入力を終了し、実行結果を出力:

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
ログイン後にコピー

Recommendation: "

javalearning"

以上がJavaスキャナーの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート