English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、例を用いてJava Scannerおよびそのメソッドを学びます。
java.ioパッケージのPrintWriterクラスは、通常読みやすい形式(テキスト)で出力データを書き出すために使用されます。
java.utilパッケージのScannerクラスは、異なるソース(例えば入力ストリーム、ユーザー、ファイルなど)から入力データを読み取るために使用されます。例を示しましょう。
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;
如上所述,导入包后,就可以创建Scannerオブジェクト。
//入力ストリームから読み込む Scanner sc1 = new Scanner(InputStream input); //ファイルから読み込む Scanner sc2 = new Scanner(File file); //文字列から読み込む Scanner sc3 = new Scanner(String str);
ここでは、Scannerクラスのオブジェクトを生成し、それらはそれぞれ以下から読み込むために使用されます。InputStream、ファイルと文字列の読み込み入力。
Scannerクラスは、さまざまなメソッドを提供して、異なるタイプの入力を読み出すことができます。
メソッド | 説明 |
---|---|
nextInt() | ユーザーからint値を読み込む |
nextFloat() | ユーザーからfloat値を読み込む |
nextBoolean() | ユーザーからboolean値を読み込む |
nextLine() | ユーザーから一行のテキストを読み込む |
next() | ユーザーから一つの単語を読み込む |
nextByte() | ユーザーからbyte値を読み込む |
nextDouble() | ユーザーからdouble値を読み込む |
nextShort() | ユーザーからshort値を読み込む |
nextLong() | ユーザーからlong値を読み込む |
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()メソッドを使用して整数値を読み込みました。
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()メソッドを使用して浮動小数点値を読み込みました。
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()メソッドが入力を読み込むスペース文字。一旦スペースに達すると、スペースを含まない文字列を返します。
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のスキャナーは、大整数と大十進数を読み込むために使用できます。
nextBigInteger() - ユーザーから大整数値を読み込む
nextBigDecimal() - ユーザーから大十進数値を読み込む
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コンパイラに意味を持つ小さな要素です。例えば
次に、入力文字列を仮定します:
He is 22
この場合、スキャナオブジェクトは一つの行を読み取り、その文字列をトークンに分割します: He ”,“ is ”と“ 22 ”。次に、オブジェクトは各トークンを順に巡回し、各トークンに対して異なるメソッドを使用して各トークンを読み取ります。
注意:デフォルトでは、スペースがマークの区切りとして使用されます。