工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java Scanner完全ガイド:実践例で学ぶ入力処理

Java Scannerをマスターする

JavaのScannerクラスを使用して、ストリーム、ファイル、文字列、コンソールからテキスト、数値、複雑な型を読み取る方法を、明確な実例で解説します。

java.utilのScannerクラスは、ストリーム、ファイル、文字列、コンソールから入力を取得できます。以下でその主要な使用パターンを説明します。


例1:テキスト行全体の読み取り

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        // 標準入力から読み取るScannerを作成
        Scanner input = new Scanner(System.in);
        System.out.print("名前を入力してください: ");
        // スペースを含む行全体を読み取り
        String name = input.nextLine();
        System.out.println("私の名前は " + name + " です");
        input.close();
    }
}

出力

名前を入力してください: Kelvin
私の名前は Kelvin です

Scanner input = new Scanner(System.in);行でキーボード入力をリッスンするScannerを構築していることに注目。

nextLine()メソッドは改行まで行全体を消費します。


Scannerクラスのインポート

Scannerを使用する前にインポート:

import java.util.Scanner;

パッケージインポートの詳細についてはJava Packagesを参照。


Scannerオブジェクトの作成

入力ソースに応じて以下のようにScannerをインスタンス化:

// 入力ストリームから(例: System.in)
Scanner sc1 = new Scanner(InputStream input);
// ファイルから
Scanner sc2 = new Scanner(File file);
// 文字列から
Scanner sc3 = new Scanner(String str);

入力用主要Scannerメソッド

Scannerクラスはさまざまなデータ型を読み取る多様なメソッドを提供。クイックリファレンス:

メソッド説明
nextInt()intを読み取り
nextFloat()floatを読み取り
nextBoolean()booleanを読み取り
nextLine()テキスト行全体を読み取り
next()単語1つ(空白まで)を読み取り
nextByte()byteを読み取り
nextDouble()doubleを読み取り
nextShort()shortを読み取り
nextLong()longを読み取り

例2:nextInt()の使用

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("整数を入力してください: ");
        int data1 = input.nextInt();
        System.out.println("nextInt()使用: " + data1);
        input.close();
    }
}

出力

整数を入力してください:
22
nextInt()使用: 22

例3:nextDouble()の使用

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Double値を入力: ");
        double value = input.nextDouble();
        System.out.println("nextDouble()使用: " + value);
        input.close();
    }
}

出力

Double値を入力: 33.33
nextDouble()使用: 33.33

例4:next()の使用

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("名前を入力: ");
        String value = input.next();
        System.out.println("next()使用: " + value);
        input.close();
    }
}

出力

名前を入力: Jonny Walker
next()使用: Jonny

next()は最初の空白で停止するため、名のみ取得されることに注意。


例5:nextLine()の使用

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("名前を入力: ");
        String value = input.nextLine();
        System.out.println("nextLine()使用: " + value);
        input.close();
    }
}

出力

名前を入力: Jonny Walker
nextLine()使用: Jonny Walker

next()とは異なり、nextLine()は改行文字までスペースを含む行全体を取得します。

推奨読書: Java Scanner nextLine()スキップ問題


BigIntegerとBigDecimalでのScanner

高精度数値のためにScannerは以下をサポート:

例:BigIntegerとBigDecimalの読み取り

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("大きな整数を入力: ");
        BigInteger value1 = input.nextBigInteger();
        System.out.println("nextBigInteger()使用: " + value1);
        System.out.print("大きな小数を入力: ");
        BigDecimal value2 = input.nextBigDecimal();
        System.out.println("nextBigDecimal()使用: " + value2);
        input.close();
    }
}

出力

大きな整数を入力: 987654321
nextBigInteger()使用: 987654321
大きな小数を入力: 9.55555
nextBigDecimal()使用: 9.55555

Scannerの内部動作

Scannerは行全体を読み取り、デフォルトで空白を区切り文字としてトークンに分割します。各トークンは適切なメソッドで取得可能。例えば入力He is 22の場合、トークンはHe、is、22になります。

ヒント: トークンはスペース、タブ、改行で区切られますが、区切り文字をカスタマイズ可能です。

Java

  1. Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
  2. Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
  3. Java継承のマスター:概念、種類、実践例
  4. Java Staticネストクラスの理解:用法、違い、実例
  5. Java無名インナークラス完全ガイド:定義、構文、実践例
  6. Javaシングルトンパターン完全解説:安全な実装と活用法
  7. Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
  8. Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
  9. Java Scanner完全ガイド:実践例で学ぶ入力処理
  10. Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
  11. Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除