Java のスキャナ クラスは、java.util パッケージにあります。 Java では、キーボードからの入力を読み取るさまざまな方法が提供されており、java.util.Scanner クラスはその 1 つです。
Java Scanner クラスは、デフォルトでは空白である区切り文字を使用して、入力をトークンに分割します。さまざまなプリミティブ値を読み取り、解析するための多くのメソッドが提供されます。
Java Scanner クラスは、正規表現を使用して文字列およびプリミティブ型のテキストを解析するために広く使用されています。これは、Java で入力を取得する最も簡単な方法です。 Java のスキャナーの助けを借りて、int、long、double、byte、float、short などのプリミティブ型でユーザーからの入力を取得できます。
Java Scanner クラスは Object クラスを拡張し、Iterator インターフェイスと Closeable インターフェイスを実装します。
Java Scanner クラスは、nextInt()、nextByte()、nextShort()、next()、nextLine()、nextDouble()、nextFloat()、nextBoolean() などの値の型を返す nextXXX() メソッドを提供します。スキャナから単一の文字を取得するには、単一の文字を返す next().charAt(0) メソッドを呼び出します。
Java スキャナ クラスの宣言
public final class Scanner extends Object implements Iterator
Java スキャナーの入手方法
ユーザーからの入力を読み取る Java Scanner のインスタンスを取得するには、Scanner クラスのコンストラクターで入力ストリーム (System.in) を渡す必要があります。例えば:
Scanner in = new Scanner(System.in);
文字列を解析する Java Scanner のインスタンスを取得するには、Scanner クラスのコンストラクターに文字列を渡す必要があります。例えば:
Scanner in = new Scanner('Hello Javatpoint');
Java スキャナ クラス コンストラクター
SN | コンストラクタ | 説明 |
---|---|---|
1) | スキャナー(ファイルソース) | 指定されたファイルからスキャンされた値を生成する新しいスキャナーを構築します。 |
2) | スキャナー(ファイルソース、文字列文字セット名) | 指定されたファイルからスキャンされた値を生成する新しいスキャナーを構築します。 |
3) | スキャナー(InputStreamソース) | 指定された入力ストリームからスキャンされた値を生成する新しいスキャナーを構築します。 |
4) | スキャナー(InputStream ソース、文字列文字セット名) | 指定された入力ストリームからスキャンされた値を生成する新しいスキャナーを構築します。 |
5) | スキャナー(読み取り可能なソース) | 指定されたソースからスキャンされた値を生成する新しいスキャナーを構築します。 |
6) | スキャナー(文字列ソース) | 指定された文字列からスキャンされた値を生成する新しいスキャナーを構築します。 |
7) | スキャナー(ReadableByteChannel ソース) | 指定されたチャネルからスキャンされた値を生成する新しいスキャナーを構築します。 |
8) | スキャナー(ReadableByteChannel ソース、文字列文字セット名) | 指定されたチャネルからスキャンされた値を生成する新しいスキャナーを構築します。 |
9) | スキャナー(パスソース) | 指定されたファイルからスキャンされた値を生成する新しいスキャナーを構築します。 |
10) | スキャナー(パスソース、文字列文字セット名) | 指定されたファイルからスキャンされた値を生成する新しいスキャナーを構築します。 |
Java スキャナ クラスのメソッド
以下はスキャナーメソッドのリストです。
SN | 修飾子とタイプ | 方法 | 説明 |
---|---|---|---|
1) | 空所 | 近い() | 本スキャナを閉じるために使用します。 |
2) | パターン | デリミタ() | これは、Scanner クラスが区切り文字を照合するために現在使用しているパターンを取得するために使用されます。 |
3) | ストリーム | すべて検索() | これは、提供されたパターン文字列と一致する一致結果のストリームを検索するために使用されます。 |
4) | 弦 | findInLine() | これは、区切り文字を無視して、指定された文字列から構成されるパターンの次の出現を検索するために使用されます。 |
5) | 弦 | findWithinHorizon() | これは、区切り文字を無視して、指定された文字列から構成されるパターンの次の出現を検索するために使用されます。 |
6) | ブール値 | hasNext() | このスキャナーの入力に別のトークンがある場合、true を返します。 |
7) | ブール値 | hasNextBigDecimal() | これは、このスキャナーの入力内の次のトークンが nextBigDecimal() メソッドを使用して BigDecimal として解釈できるかどうかをチェックするために使用されます。 |
8) | ブール値 | hasNextBigInteger() | これは、このスキャナーの入力内の次のトークンが nextBigDecimal() メソッドを使用して BigDecimal として解釈できるかどうかをチェックするために使用されます。 |
9) | ブール値 | hasNextBoolean() | これは、このスキャナの入力内の次のトークンが nextBoolean() メソッドを使用してブール値として解釈できるかどうかをチェックするために使用されます。 |
10) | ブール値 | hasNextByte() | これは、このスキャナの入力内の次のトークンが nextBigDecimal() メソッドを使用して Byte として解釈できるかどうかをチェックするために使用されます。 |
十一) | ブール値 | hasNextDouble() | これは、このスキャナーの入力内の次のトークンが nextByte() メソッドを使用して BigDecimal として解釈できるかどうかをチェックするために使用されます。 |
12) | ブール値 | hasNextFloat() | これは、このスキャナの入力内の次のトークンが nextFloat() メソッドを使用して Float として解釈できるかどうかをチェックするために使用されます。 |
13) | ブール値 | hasNextInt() | これは、このスキャナの入力内の次のトークンが nextInt() メソッドを使用して int として解釈できるかどうかを確認するために使用されます。 |
14) | ブール値 | hasNextLine() | このスキャナの入力に別の行があるかどうかを確認するために使用されます。 |
15) | ブール値 | hasNextLong() | これは、このスキャナの入力内の次のトークンが nextLong() メソッドを使用して Long として解釈できるかどうかをチェックするために使用されます。 |
16) | ブール値 | hasNextShort() | これは、このスキャナの入力内の次のトークンが nextShort() メソッドを使用して Short として解釈できるかどうかを確認するために使用されます。 |
17) | IO例外 | ioException() | このスキャナの読み取り可能オブジェクトによって最後にスローされた IOException を取得するために使用されます。 |
18) | 地元 | 地元() | Scanner クラスの Locale を取得するために使用されます。 |
19) | 試合結果 | マッチ() | このスキャナーによって実行された最後のスキャン操作の一致結果を取得するために使用されます。 |
二十) | 弦 | 次() | これは、使用中のスキャナーから次の完全なトークンを取得するために使用されます。 |
21) | BigDecimal | nextBigDecimal() | 入力の次のトークンを BigDecimal としてスキャンします。 |
22) | ビッグ整数 | nextBigInteger() | 入力の次のトークンを BigInteger としてスキャンします。 |
23) | ブール値 | nextBoolean() | 入力の次のトークンをスキャンしてブール値にし、その値を返します。 |
24) | バイト | nextByte() | 入力の次のトークンをバイトとしてスキャンします。 |
25) | ダブル | nextDouble() | 入力の次のトークンを double としてスキャンします。 |
26) | 浮く | nextFloat() | 入力の次のトークンを浮動小数点としてスキャンします。 |
27) | 整数 | nextInt() | 入力の次のトークンを Int としてスキャンします。 |
28) | 弦 | nextLine() | これは、Scanner オブジェクトからスキップされた入力文字列を取得するために使用されます。 |
29) | 長さ | nextLong() | 入力の次のトークンを Long としてスキャンします。 |
30) | 短い | nextShort() | 入力の次のトークンを short としてスキャンします。 |
31) | 整数 | 基数() | これは、スキャナーが使用するデフォルトの基数を取得するために使用されます。 |
32) | 空所 | 取り除く() | これは、削除操作がイテレーターのこの実装でサポートされていない場合に使用されます。 |
33) | スキャナー | リセット() | 使用中のスキャナをリセットするために使用します。 |
3.4) | スキャナー | スキップ() | 区切り文字を無視して、指定されたパターンに一致する入力をスキップします。 |
35) | ストリーム | トークン() | これは、使用中の Scanner オブジェクトから区切り文字で区切られたトークンのストリームを取得するために使用されます。 |
36) | 弦 | toString() | これは、Scanner の文字列表現を取得するために使用されます。 |
37) | スキャナー | useDelimiter() | 使用するスキャナーの区切りパターンを指定パターンに設定する場合に使用します。 |
38) | スキャナー | useLocale() | このスキャナのロケール オブジェクトを指定されたロケールに設定するために使用されます。 |
39) | スキャナー | useRadix() | 使用中のスキャナのデフォルトの基数を指定した基数に設定するために使用されます。 |
例1
ユーザーから 1 つの入力を取得する Java Scanner の簡単な例を見てみましょう。ここでは、in.nextLine() メソッドを通じて文字列を要求しています。
import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } }
出力:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
例 2
import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } }
出力:
Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0
例 3
import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } }
出力:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /