English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基础教程

Java プロセス制御

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 異常処理

Java リスト(List)

Java キュー(キュー)

Java Mapコレクション

Java Setコレクション

Java 入出力(I/O)

Java Reader/Writer

Java 他のトピック

Java Scanner クラス

このチュートリアルでは、例を用いてJava Scannerおよびそのメソッドを学びます。

java.ioパッケージのPrintWriterクラスは、通常読みやすい形式(テキスト)で出力データを書き出すために使用されます。

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();
    }
}

出力結果

名前を入力してください: Jack
私の名前は  Jack

上の例では、以下の行に注意してください

Scanner input = new Scanner(System.in);

ここでは、inputという名前のScannerオブジェクトを作成しています。

System.inパラメータは、標準入力から入力を取得するために使用されます。キーボードから入力を取得するのと同じです。

次に、ScannerクラスのnextLine()メソッドを使用してユーザーから一行のテキストを読み取ります。

Scannerに対して少し了解を深めた今、さらに詳しく探求しましょう。

スキャナークラスをインポート

上の例では、java.util.Scannerパッケージをまずインポートする必要があります。

import java.util.Scanner;

Javaでスキャンプロセスオブジェクトを作成

如上所述,导入包后,就可以创建Scannerオブジェクト。

//入力ストリームから読み込む
Scanner sc1 = new Scanner(InputStream input);
//ファイルから読み込む
Scanner sc2 = new Scanner(File file);
//文字列から読み込む
Scanner sc3 = new Scanner(String str);

ここでは、Scannerクラスのオブジェクトを生成し、それらはそれぞれ以下から読み込むために使用されます。InputStream、ファイルと文字列の読み込み入力。

Java スキャナー入力メソッド

Scannerクラスは、さまざまなメソッドを提供して、異なるタイプの入力を読み出すことができます。

メソッド説明
nextInt()ユーザーからint値を読み込む
nextFloat()ユーザーからfloat値を読み込む
nextBoolean()ユーザーからboolean値を読み込む
nextLine()ユーザーから一行のテキストを読み込む
next()ユーザーから一つの単語を読み込む
nextByte()ユーザーからbyte値を読み込む
nextDouble()ユーザーからdouble値を読み込む
nextShort()ユーザーからshort値を読み込む
nextLong()ユーザーからlong値を読み込む

例2:Java スキャナー nextInt()

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        //スキャナーオブジェクトを生成する
        Scanner input = new Scanner(System.in);
        System.out.println("入力する整数: ");
        //読み込むint値
        int data1 = input.nextInt();
        System.out.println("使用 nextInt(): " + data1);
        input.close();
    }
}

出力結果

入力する整数:
22
使用 nextInt(): 22

上記の例では、nextInt()メソッドを使用して整数値を読み込みました。

例3:Java スキャナー nextDouble() メソッド

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Scannerオブジェクトを作成しています
      Scanner input = new Scanner(System.in);
      System.out.print("入力の双精度値: ");
      //読み込む双精度値
      double value = input.nextDouble();
      System.out.println("使用 nextDouble(): " + value);
      input.close();
   }
}

出力結果

入力の双精度値: 33.33
使用 nextDouble(): 33.33

上記の例では、nextDouble()メソッドを使用して浮動小数点値を読み込みました。

例4:Javaのスキャナー next() メソッド

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Scannerオブジェクトを作成しています
      Scanner input = new Scanner(System.in);
      System.out.print("Enter your name: ");
      //読み込む整个单词
      String value = input.next();
      System.out.println("Using next(): " + value);
      input.close();
   }
}

出力結果

Enter your name: Jonny Walker
Using next(): Jonny

上記の例では、next()メソッドを使用してユーザーから文字列を読み込みました。

ここでは、フルネームを提供していますが、next()メソッドは名前のみを読み取ります。

これは、next()メソッドが入力を読み込むスペース文字。一旦スペースに達すると、スペースを含まない文字列を返します。

例5:JavaスキャナーnextLine()メソッド

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Scannerオブジェクトを作成しています
      Scanner input = new Scanner(System.in);
      System.out.print("Enter your name: ");
      //一つの行を読み込む
      String value = input.nextLine();
      System.out.println("Using nextLine(): " + value);
      input.close();
   }
}

出力結果

Enter your name: Jonny Walker
Using nextLine(): Jonny Walker

最初の例では、nextLine()メソッドを使用してユーザーから文字列を読み込みました。

next()とは異なり、nextLine()メソッドは空格を含む整个入力行を読み込みます。このメソッドが次の行の文字\nに達すると終了します。

Javaスキャナー BigIntegerとBigDecimal

Javaのスキャナーは、大整数と大十進数を読み込むために使用できます。

  • nextBigInteger() - ユーザーから大整数値を読み込む

  • nextBigDecimal() - ユーザーから大十進数値を読み込む

例4:BigIntegerとBigDecimalの読み込み

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Scannerオブジェクトを作成しています
      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("Using nextBigDecimal(): ") + value2);
      input.close();
   }
}

出力結果

大きな整数を入力してください: 987654321
nextBigInteger()を使用して: 987654321
大きな十進数を入力してください: 9.55555
nextBigDecimal()を使用して: 9.55555

上記の例では、java.math.BigIntegerとjava.math.BigDecimalパッケージを使用してBigIntegerとBigDecimalを読み取ります。

Java スキャナーの動作方法

スキャナークラスは一つの行全体を読み取り、その行をトークンに分割します。トークンはJavaコンパイラに意味を持つ小さな要素です。例えば

次に、入力文字列を仮定します:

He is 22

この場合、スキャナオブジェクトは一つの行を読み取り、その文字列をトークンに分割します: He ”,“ is ”と“ 22 ”。次に、オブジェクトは各トークンを順に巡回し、各トークンに対して異なるメソッドを使用して各トークンを読み取ります。

注意:デフォルトでは、スペースがマークの区切りとして使用されます。