- すべての実装されたインタフェース:
Closeable
,AutoCloseable
,Iterator<String>
Scanner
は、区切り文字のパターンを使用して入力をトークンに分割します。デフォルトでは区切り文字は空白文字です。 結果のトークンは、様々なnext
メソッドを使用して様々なタイプの値に変換できます。
たとえば、このコードを使用すると、ユーザーはコンソールから番号を読み取ることができます。
var con = System.console();
if (con != null) {
Scanner sc = new Scanner(con.reader()
);
int i = sc.nextInt();
}
別の例として、次のコードを使用して、myNumbers
ファイル内のエントリからlong
型を割り当てることができます。
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}
スキャナは、空白文字以外の区切り文字も使用できます。 次の例では、文字列から複数の項目を読み取ります。
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
画面には次のように表示されます。
1 2 red blue
次のコードでも、同じ出力を生成できます。このコードでは、4つのトークンを一度に構文解析する正規表現を使用します。
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input);
s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
MatchResult result = s.match();
for (int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i));
s.close();
スキャナで使用される「デフォルトの空白区切り文字」は、Character.isWhitespace()
によって認識されます。 reset()
メソッドは、スキャナの区切り文字が以前に変更されたかどうかにかかわらず、その値をデフォルトの空白区切り文字にリセットします。
スキャン操作により、入力の待機が妨げられる場合があります。
next()
およびhasNext()
メソッドとそのコンパニオン・メソッド(nextInt()
やhasNextInt()
など)は、最初にデリミタ・パターンと一致する入力をスキップしてから、次のトークンを返そうとします。 hasNext()
メソッドとnext()
メソッドの両方が、追加入力の待機をブロックする場合があります。 hasNext()
メソッド・ブロックに、関連付けられているnext()
メソッドがブロックするかどうかとの接続がないかどうか。 tokens()
メソッドは、入力の待機をブロックすることもできます。
findInLine()
、findWithinHorizon()
、skip()
およびfindAll()
メソッドは、デリミタ・パターンとは独立して動作します。 これらのメソッドは、入力内の区切り文字とは無関係に指定されたパターンのマッチングを試みます。このため、区切り文字と無関係な特殊な環境で使用できます。 これらのメソッドは、それ以上の入力の待機をブロックできます。
スキャナがInputMismatchException
をスローするとき、ほかのメソッドを使用して取得またはスキップできるように、スキャナは例外の原因となったトークンを渡しません。
区切り文字パターンのタイプに応じて、空のトークンが返されることがあります。 たとえば、パターン"\\s+"
はデリミタの複数のインスタンスと一致するため、空のトークンを返しません。 区切りパターン"\\s"
は、一度に1つのスペースしか渡さないため、空のトークンを返すことができます。
スキャナは、Readable
インタフェースを実装する任意のオブジェクトからテキストを読み取ることができます。 基礎となる読取り可能オブジェクトのread()
メソッドの呼出しでIOException
がスローされると、スキャナは入力の終わりに達したと想定します。 基礎となる読取り可能オブジェクトによってスローされた最新のIOException
は、ioException()
メソッドを介して取得できます。
Scanner
が閉じられる場合、その入力ソースがCloseable
インタフェースを実装していると、そのソースも閉じられます。
Scanner
が、外部の同期化を行わずにマルチ・スレッドを使用するのは安全ではありません。
特に明記されていないかぎり、null
パラメータをScanner
のいずれかのメソッドに渡すと、NullPointerException
がスローされます。
useRadix(int)
メソッドを使用して別の基数が設定されていない場合、スキャナは数値を10進数として解釈します。 reset()
メソッドは、スキャナの基数の値を、以前に変更されたかどうかにかかわらず、10
にリセットします。
ローカライズの数
このクラスのインスタンスは、標準の書式に加え、スキャナのロケールの書式で数値をスキャンできます。 スキャナの「初期ロケール」は、Locale.getDefault(Locale.Category.FORMAT)
メソッドによって戻される値です。これは、useLocale()
メソッドを介して変更できます。 reset()
メソッドは、以前に変更されたかどうかにかかわらず、スキャナのロケールの値を初期ロケールにリセットします。
ローカライズされた形式は、次のパラメータで定義されます。特定のロケールについては、そのロケールのDecimalFormat
オブジェクト、df
、およびDecimalFormatSymbols
オブジェクトdfs
から取得されます。
- LocalGroupSeparator
- 千のグループを区切るために使用する文字、つまり、
dfs.
getGroupingSeparator()
- LocalDecimalSeparator
- 小数点に使用する文字、つまり、
dfs.
getDecimalSeparator()
- LocalPositivePrefix
- 正の数値の前に出現する文字列(空の場合があります)、つまり、
df.
getPositivePrefix()
- LocalPositiveSuffix
- 正の数値の後に表示される文字列(空の場合があります)、つまり、
df.
getPositiveSuffix()
- LocalNegativePrefix
- 負の数値の前に出現する文字列(空の場合があります)、つまり、
df.
getNegativePrefix()
- LocalNegativeSuffix
- 負の数値の後に表示される文字列(空の場合があります)、つまり、
df.
getNegativeSuffix()
- LocalNaN
- 浮動小数点値の非数値を表す文字列、つまり、
dfs.
getNaN()
- LocalInfinity
- 浮動小数点値の無限を表す文字列、つまり、
dfs.
getInfinity()
数値の構文
このクラスのインスタンスが数値として構文解析可能な文字列は、次の正規表現の文法に従って指定されます。ここで、Rmaxは、使用中の基数の中で最大の数字です(たとえば、基数10のRmaxは9)。
- NonAsciiDigit:
Character.isDigit
(c)
がtrueを返すASCII以外の文字c- Non0Digit:
[1-
Rmax] |
NonASCIIDigit- Digit:
[0-
Rmax] |
NonASCIIDigit- GroupedNumeral:
(
Non0Digit Digit?
Digit?
(
LocalGroupSeparator Digit Digit Digit)+ )
- Numeral:
( (
Digit+ ) |
GroupedNumeral)
- Integer:
( [-+]? (
「数字」) )
|
LocalPositivePrefix 「数字」 LocalPositiveSuffix|
LocalNegativePrefix 「数字」 LocalNegativeSuffix- DecimalNumeral:
- Numeral
|
Numeral LocalDecimalSeparator Digit*
|
LocalDecimalSeparator Digit+
- Exponent:
( [eE] [+-]?
Digit+ )
- Decimal:
( [-+]?
DecimalNumeral Exponent? )
|
LocalPositivePrefix DecimalNumeral LocalPositiveSuffix Exponent?
|
LocalNegativePrefix DecimalNumeral LocalNegativeSuffix Exponent?
- HexFloat:
[-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)?
- NonNumber:
NaN |
LocalNan| Infinity |
LocalInfinity- SignedNonNumber:
( [-+]?
NonNumber)
|
LocalPositivePrefix NonNumber LocalPositiveSuffix|
LocalNegativePrefix NonNumber LocalNegativeSuffix- Float:
- Decimal
|
HexFloat|
SignedNonNumber
前述の正規表現では、空白文字は無視されます。
- 導入されたバージョン:
- 1.5
-
コンストラクタのサマリー
コンストラクタ説明指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。Scanner
(InputStream source) 指定された入力ストリームからスキャンされた値を生成する新しいScanner
を構築します。Scanner
(InputStream source, String charsetName) 指定された入力ストリームからスキャンされた値を生成する新しいScanner
を構築します。Scanner
(InputStream source, Charset charset) 指定された入力ストリームからスキャンされた値を生成する新しいScanner
を構築します。指定されたソースからスキャンされた値を生成するScanner
を新しく構築します。指定された文字列からスキャンされた値を生成するScanner
を新しく構築します。Scanner
(ReadableByteChannel source) 指定されたチャネルからスキャンされた値を生成する新しいScanner
を構築します。Scanner
(ReadableByteChannel source, String charsetName) 指定されたチャネルからスキャンされた値を生成する新しいScanner
を構築します。Scanner
(ReadableByteChannel source, Charset charset) 指定されたチャネルからスキャンされた値を生成する新しいScanner
を構築します。指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明void
close()
現在のスキャナをクローズします。このScanner
が区切り文字のマッチングに現在使用しているPattern
を返します。指定されたパターン文字列に一致する一致結果のストリームを返します。このスキャナから一致結果のストリームを返します。findInLine
(String pattern) 区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。findInLine
(Pattern pattern) 区切り文字を無視して、次に現れる指定されたパターンの検索を試みます。findWithinHorizon
(String pattern, int horizon) 区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。findWithinHorizon
(Pattern pattern, int horizon) 次に現れる指定されたパターンの検索を試みます。boolean
hasNext()
このスキャナが入力内に別のトークンを保持する場合はtrueを返します。boolean
次のトークンが、指定された文字列から構築されたパターンに一致する場合はtrueを返します。boolean
次の完全なトークンが指定されたパターンに一致する場合はtrueを返します。boolean
このスキャナの入力内の次のトークンが、nextBigDecimal()
メソッドを使ってBigDecimal
として解釈可能な場合にtrueを返します。boolean
このスキャナの入力内の次のトークンが、nextBigInteger()
メソッドを使ってデフォルト基数のBigInteger
として解釈可能な場合にtrueを返します。boolean
hasNextBigInteger
(int radix) このスキャナの入力内の次のトークンが、nextBigInteger()
メソッドを使って、指定された基数のBigInteger
として解釈可能な場合にtrueを返します。boolean
文字列「true|false」から作成された大文字と小文字の区別されないパターンを使用して、スキャナの入力内の次のトークンをboolean値として解釈可能であれば、trueを返します。boolean
このスキャナの入力内の次のトークンが、nextByte()
メソッドを使ってデフォルト基数のbyte値として解釈可能な場合にtrueを返します。boolean
hasNextByte
(int radix) このスキャナの入力内の次のトークンが、nextByte()
メソッドを使って、指定された基数のbyte値として解釈可能な場合にtrueを返します。boolean
このスキャナの入力内の次のトークンが、nextDouble()
メソッドを使ってdouble値として解釈可能な場合にtrueを返します。boolean
このスキャナの入力内の次のトークンが、nextFloat()
メソッドを使ってfloat値として解釈可能な場合にtrueを返します。boolean
このスキャナの入力内の次のトークンが、nextInt()
メソッドを使ってデフォルト基数のint値として解釈可能な場合にtrueを返します。boolean
hasNextInt
(int radix) このスキャナの入力内の次のトークンが、nextInt()
メソッドを使って、指定された基数のint値として解釈可能な場合にtrueを返します。boolean
このスキャナの入力に別の行がある場合はtrueを返します。boolean
このスキャナの入力内の次のトークンが、nextLong()
メソッドを使ってデフォルト基数のlong値として解釈可能な場合にtrueを返します。boolean
hasNextLong
(int radix) このスキャナの入力内の次のトークンが、nextLong()
メソッドを使って、指定された基数のlong値として解釈可能な場合にtrueを返します。boolean
このスキャナの入力内の次のトークンが、nextShort()
メソッドを使ってデフォルト基数のshort値として解釈可能な場合にtrueを返します。boolean
hasNextShort
(int radix) このスキャナの入力内の次のトークンが、nextShort()
メソッドを使って、指定された基数のshort値として解釈可能な場合にtrueを返します。このScanner
の基となるReadable
によって最後にスローされたIOException
を返します。locale()
現在のスキャナのロケールを返します。match()
このスキャナが実行した最後のスキャン操作のマッチング結果を返します。next()
このスキャナから次の完全なトークンを検索して返します。次のトークンが指定された文字列から構築されたパターンに一致する場合にのみ、それを返します。指定されたパターンに一致する次のトークンを返します。入力の次のトークンをBigDecimal
としてスキャンします。入力の次のトークンをBigInteger
としてスキャンします。nextBigInteger
(int radix) 入力の次のトークンをBigInteger
としてスキャンします。boolean
入力の次のトークンをboolean値としてスキャンして、その値を返します。byte
nextByte()
入力の次のトークンをbyte
としてスキャンします。byte
nextByte
(int radix) 入力の次のトークンをbyte
としてスキャンします。double
入力の次のトークンをdouble
としてスキャンします。float
入力の次のトークンをfloat
としてスキャンします。int
nextInt()
入力の次のトークンをint
としてスキャンします。int
nextInt
(int radix) 入力の次のトークンをint
としてスキャンします。nextLine()
スキャナを現在行の先に進めて、スキップした入力を返します。long
nextLong()
入力の次のトークンをlong
としてスキャンします。long
nextLong
(int radix) 入力の次のトークンをlong
としてスキャンします。short
入力の次のトークンをshort
としてスキャンします。short
nextShort
(int radix) 入力の次のトークンをshort
としてスキャンします。int
radix()
現在のスキャナのデフォルト基数を返します。void
remove()
removeオペレーションは、このIterator
の実装によってサポートされていません。reset()
現在のスキャナをリセットします。指定された文字列で構築されたパターンに一致する入力をスキップします。指定されたパターンに一致する入力を、区切り文字を無視してスキップします。tokens()
このスキャナからデリミタで区切られたトークンのストリームを返します。toString()
このScanner
の文字列表現を返します。useDelimiter
(String pattern) このスキャナの区切り文字パターンを、指定されたString
から作成されたパターンに設定します。useDelimiter
(Pattern pattern) このスキャナの区切り文字パターンを、指定されたパターンに設定します。スキャナのロケールを指定されたロケールに設定します。useRadix
(int radix) スキャナのデフォルト基数を指定された基数に設定します。クラスjava.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェースjava.util.Iteratorで宣言されたメソッド
forEachRemaining
-
コンストラクタの詳細
-
Scanner
-
Scanner
public Scanner(InputStream source) 指定された入力ストリームからスキャンされた値を生成する新しいScanner
を構築します。 ストリームからのバイトは、default charsetを使用して文字に変換されます。- パラメータ:
source
- スキャン対象の入力ストリーム- 関連項目:
-
Scanner
public Scanner(InputStream source, String charsetName) 指定された入力ストリームからスキャンされた値を生成する新しいScanner
を構築します。 ストリームからのバイトは、指定された文字セットを使用して文字に変換されます。- パラメータ:
source
- スキャン対象の入力ストリームcharsetName
- ストリームから取得したバイトをスキャン対象の文字に変換する際に使用するエンコーディング型- 例外:
IllegalArgumentException
- 指定された文字セットが存在しない場合
-
Scanner
public Scanner(InputStream source, Charset charset) 指定された入力ストリームからスキャンされた値を生成する新しいScanner
を構築します。 ストリームからのバイトは、指定された文字セットを使用して文字に変換されます。- パラメータ:
source
- スキャンされる入力ストリームcharset
- バイトをファイルからスキャンする文字に変換するために使用される文字セット- 導入されたバージョン:
- 10
-
Scanner
public Scanner(File source) throws FileNotFoundException 指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。 ファイルからのバイトは、default charsetを使用して文字に変換されます。- パラメータ:
source
- スキャン対象のファイル- 例外:
FileNotFoundException
- ソースが見つからない場合- 関連項目:
-
Scanner
public Scanner(File source, String charsetName) throws FileNotFoundException 指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。 ファイルから取得したバイトは、指定された文字セットを使用して文字に変換されます。- パラメータ:
source
- スキャン対象のファイルcharsetName
- ファイルから取得したバイトをスキャン対象の文字に変換する際に使用するエンコーディング型- 例外:
FileNotFoundException
- ソースが見つからない場合IllegalArgumentException
- 指定されたエンコーディングが見つからない場合
-
Scanner
public Scanner(File source, Charset charset) throws IOException 指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。 ファイルから取得したバイトは、指定された文字セットを使用して文字に変換されます。- パラメータ:
source
- スキャン対象のファイルcharset
- バイトをファイルからスキャンする文字に変換するために使用される文字セット- 例外:
IOException
- ソースのオープン中にI/Oエラーが発生した場合- 導入されたバージョン:
- 10
-
Scanner
public Scanner(Path source) throws IOException 指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。 ファイルからのバイトは、default charsetを使用して文字に変換されます。- パラメータ:
source
- スキャン対象のファイルへのパス- 例外:
IOException
- ソースを開いているときに入出力エラーが発生した場合- 導入されたバージョン:
- 1.7
- 関連項目:
-
Scanner
public Scanner(Path source, String charsetName) throws IOException 指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。 ファイルから取得したバイトは、指定された文字セットを使用して文字に変換されます。- パラメータ:
source
- スキャン対象のファイルへのパスcharsetName
- ファイルから取得したバイトをスキャン対象の文字に変換する際に使用するエンコーディング型- 例外:
IOException
- ソースを開いているときに入出力エラーが発生した場合IllegalArgumentException
- 指定されたエンコーディングが見つからない場合- 導入されたバージョン:
- 1.7
-
Scanner
public Scanner(Path source, Charset charset) throws IOException 指定されたファイルからスキャンされた値を生成する新しいScanner
を構築します。 ファイルから取得したバイトは、指定された文字セットを使用して文字に変換されます。- パラメータ:
source
- スキャン対象のファイルへのパスcharset
- バイトをファイルからスキャンする文字に変換するために使用される文字セット- 例外:
IOException
- ソースのオープン中にI/Oエラーが発生した場合- 導入されたバージョン:
- 10
-
Scanner
-
Scanner
public Scanner(ReadableByteChannel source) 指定されたチャネルからスキャンされた値を生成する新しいScanner
を構築します。 ソースからのバイトは、default charsetを使用して文字に変換されます。- パラメータ:
source
- スキャンするチャネル- 関連項目:
-
Scanner
public Scanner(ReadableByteChannel source, String charsetName) 指定されたチャネルからスキャンされた値を生成する新しいScanner
を構築します。 ソースから取得したバイトは、指定された文字セットを使用して文字に変換されます。- パラメータ:
source
- スキャンするチャネルcharsetName
- チャネルから取得したバイトをスキャン対象の文字に変換する際に使用するエンコーディング型- 例外:
IllegalArgumentException
- 指定された文字セットが存在しない場合
-
Scanner
public Scanner(ReadableByteChannel source, Charset charset) 指定されたチャネルからスキャンされた値を生成する新しいScanner
を構築します。 ソースから取得したバイトは、指定された文字セットを使用して文字に変換されます。- パラメータ:
source
- スキャンするチャネルcharset
- チャネルからのバイトをスキャンする文字に変換するために使用されるエンコーディング・タイプ- 導入されたバージョン:
- 10
-
-
メソッドの詳細
-
close
public void close()現在のスキャナをクローズします。このスキャナがまだ閉じていない場合、基礎となるreadableが
Closeable
インタフェースも実装している場合は、読取り可能なclose
メソッドが起動されます。 このスキャナがすでに閉じられている場合、このメソッドを呼び出しても何も起こりません。スキャナがクローズしたあとで検索操作の実行を試みると、
IllegalStateException
がスローされます。- 定義:
close
、インタフェースAutoCloseable
- 定義:
close
、インタフェースCloseable
-
ioException
public IOException ioException()このScanner
の基となるReadable
によって最後にスローされたIOException
を返します。 そのような例外が存在しない場合、このメソッドはnull
を返します。- 戻り値:
- このスキャナのreadableが最後にスローした例外
-
delimiter
-
useDelimiter
-
useDelimiter
-
locale
-
useLocale
-
radix
public int radix()現在のスキャナのデフォルト基数を返します。スキャナの基数は、デフォルトの数値一致正規表現の多数の要素に影響を及ぼします。前述の「ローカライズの数」を参照してください。
- 戻り値:
- 現在のスキャナのデフォルト基数
-
useRadix
public Scanner useRadix(int radix) スキャナのデフォルト基数を指定された基数に設定します。スキャナの基数は、デフォルトの数値一致正規表現の多数の要素に影響を及ぼします。前述の「ローカライズの数」を参照してください。
基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。reset()
メソッドを呼び出すと、スキャナの基数が10
に設定されます。- パラメータ:
radix
- 数値のスキャン時に使用する基数- 戻り値:
- 現在のスキャナ
- 例外:
IllegalArgumentException
- 基数が範囲外にある場合
-
match
public MatchResult match()このスキャナが実行した最後のスキャン操作のマッチング結果を返します。 マッチングが実行されなかったか、最後のマッチングが成功しなかった場合、このメソッドはIllegalStateException
をスローします。Scanner
のさまざまなnext
メソッドは、例外をスローせずに処理が完了すると、マッチング結果を使用可能にします。 たとえば、intを返したnextInt()
メソッドの呼出しのあとでは、このメソッドは、先に定義したInteger正規表現の検索用のMatchResult
を返します。 同様に、findInLine()
、findWithinHorizon()
およびskip()
メソッドが成功すると、一致が使用可能になります。- 戻り値:
- 最後のマッチング操作の結果
- 例外:
IllegalStateException
- マッチング結果が使用可能ではない場合
-
toString
-
hasNext
public boolean hasNext()このスキャナが入力内に別のトークンを保持する場合はtrueを返します。 このメソッドは、入力のスキャンの待機中にブロックを実行する可能性があります。 このスキャナがクローズしている場合- 定義:
hasNext
、インタフェースIterator<String>
- 戻り値:
- このスキャナが別のトークンを保持する場合にのみtrue
- 例外:
IllegalStateException
- このスキャナがクローズしている場合- 関連項目:
-
next
public String next()このスキャナから次の完全なトークンを検索して返します。 完全なトークンの前後には、区切り文字パターンに一致する入力が配置されます。 このメソッドは、前のhasNext()
の呼出しでtrue
が返された場合でも、入力のスキャンの待機中にブロックを実行する可能性があります。- 定義:
next
、インタフェースIterator<String>
- 戻り値:
- 次のトークン
- 例外:
NoSuchElementException
- 利用可能なトークンがこれ以上存在しない場合IllegalStateException
- このスキャナがクローズしている場合- 関連項目:
-
remove
public void remove()removeオペレーションは、このIterator
の実装によってサポートされていません。- 定義:
remove
、インタフェースIterator<String>
- 例外:
UnsupportedOperationException
- このメソッドが呼び出された場合。- 関連項目:
-
hasNext
public boolean hasNext(String pattern) 次のトークンが、指定された文字列から構築されたパターンに一致する場合はtrueを返します。 このスキャナがクローズしている場合hasNext(pattern)
形式のこのメソッドの呼出しは、起動hasNext(Pattern.compile(pattern))
とまったく同じように動作します。- パラメータ:
pattern
- スキャンするパターンを指定する文字列- 戻り値:
- このスキャナが指定されたパターンに一致する別のトークンを保持する場合にのみtrue
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
next
次のトークンが指定された文字列から構築されたパターンに一致する場合にのみ、それを返します。 マッチングに成功すると、スキャナはパターンに一致した入力の先に進みます。next(pattern)
形式のこのメソッドの呼出しは、起動next(Pattern.compile(pattern))
とまったく同じように動作します。- パラメータ:
pattern
- スキャンするパターンを指定する文字列- 戻り値:
- 次のトークン
- 例外:
NoSuchElementException
- 指定されたトークンが利用できない場合IllegalStateException
- このスキャナがクローズしている場合
-
hasNext
public boolean hasNext(Pattern pattern) 次の完全なトークンが指定されたパターンに一致する場合はtrueを返します。 完全なトークンの前後には、区切り文字パターンに一致する入力が配置されます。 このメソッドは、入力の待機中にブロックを実行する可能性があります。 このスキャナがクローズしている場合- パラメータ:
pattern
- スキャンするパターン- 戻り値:
- このスキャナが指定されたパターンに一致する別のトークンを保持する場合にのみtrue
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
next
指定されたパターンに一致する次のトークンを返します。 このメソッドは、前のhasNext(Pattern)
の呼出しでtrue
が返された場合でも、入力のスキャンの待機中にブロックを実行する可能性があります。 マッチングに成功すると、スキャナはパターンに一致した入力の先に進みます。- パラメータ:
pattern
- スキャンするパターン- 戻り値:
- 次のトークン
- 例外:
NoSuchElementException
- 利用可能なトークンがこれ以上存在しない場合IllegalStateException
- このスキャナがクローズしている場合
-
hasNextLine
public boolean hasNextLine()このスキャナの入力に別の行がある場合はtrueを返します。 このメソッドは、入力の待機中にブロックを実行する可能性があります。 このスキャナがクローズしている場合- 戻り値:
- 残りの入力に行セパレータがある場合、または入力に他の残りの文字がある場合、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
nextLine
public String nextLine()スキャナを現在行の先に進めて、スキップした入力を返します。 このメソッドは、最後の行区切り文字を除く、現在行の残りを返します。 位置は、次の行の最初に設定されます。このメソッドは行区切り文字の検索を入力内で続行するため、行区切り文字が存在しない場合、スキップする行を検索する入力をすべてバッファすることがあります。
- 戻り値:
- スキップされた行
- 例外:
NoSuchElementException
- 行が見つからなかった場合IllegalStateException
- このスキャナがクローズしている場合
-
findInLine
区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。findInLine(pattern)
形式のこのメソッドの呼出しは、起動findInLine(Pattern.compile(pattern))
とまったく同じように動作します。- パラメータ:
pattern
- 検索するパターンを指定する文字列- 戻り値:
- 指定されたパターンに一致したテキスト
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
findInLine
区切り文字を無視して、次に現れる指定されたパターンの検索を試みます。 次の行区切り文字より前にパターンが見つかった場合、スキャナは一致した入力の先に進み、パターンに一致した文字列を返します。 次の行区切り文字よりも前に該当するパターンが見つからなかった場合は、null
が返され、スキャナの位置は変更されません。 このメソッドは、パターンに一致する入力の待機をブロックする場合があります。このメソッドは指定されたパターンの検索を入力内で続行するため、行区切り文字が存在しない場合、該当するトークンを検索する入力をすべてバッファすることがあります。
- パラメータ:
pattern
- スキャンするパターン- 戻り値:
- 指定されたパターンに一致したテキスト
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
findWithinHorizon
区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。findWithinHorizon(pattern)
形式のこのメソッドの呼出しは、起動findWithinHorizon(Pattern.compile(pattern), horizon)
とまったく同じように動作します。- パラメータ:
pattern
- 検索するパターンを指定する文字列horizon
- 検索horizon- 戻り値:
- 指定されたパターンに一致したテキスト
- 例外:
IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- horizonが負の値の場合
-
findWithinHorizon
次に現れる指定されたパターンの検索を試みます。このメソッドは指定された検索horizonまで区切り文字を無視して入力内で行区切り文字の検索を続行します。 パターンが見つかった場合、スキャナは一致した入力の先に進み、パターンに一致した文字列を返します。 該当するパターンが検出されない場合は、nullが返され、スキャナの位置は変更されません。 このメソッドは、パターンに一致する入力の待機をブロックする場合があります。
スキャナは、現在位置を超える
horizon
コード・ポイント以上の検索を決して実行しません。 マッチングはhorizonによりクリップされる場合があります。つまり、horizonがより大きい場合、任意のマッチング結果が異なっている可能性があります。 スキャナは、horizonを、透過的な非アンカー境界として扱います(Matcher.useTransparentBounds(boolean)
およびMatcher.useAnchoringBounds(boolean)
を参照)。horizonが
0
の場合、horizonは無視され、このメソッドは入力内で指定されたパターンの検索を続行します。パターンの検索には制限がありません。 また、パターンの検索中にすべての入力をバッファできます。horizonが負の場合は、IllegalArgumentExceptionがスローされます。
- パラメータ:
pattern
- スキャンするパターンhorizon
- 検索horizon- 戻り値:
- 指定されたパターンに一致したテキスト
- 例外:
IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- horizonが負の値の場合
-
skip
指定されたパターンに一致する入力を、区切り文字を無視してスキップします。 指定されたパターンの先頭一致が成功すると、このメソッドは入力をスキップします。指定されたパターンへの一致が現在の位置に見つからない場合、入力はスキップされず、
NoSuchElementException
がスローされます。このメソッドは、指定されたパターンへのマッチングをスキャナの現在位置から検索するため、「*」のように多数の入力に一致する可能性のあるパターンを指定すると、スキャナが大量の入力をバッファする場合があります。
sc.skip("[\t]*")
のように、何にも一致しないパターンを使用することで、NoSuchElementException
がスローされる危険を冒すことなくスキップすることが可能です。- パラメータ:
pattern
- スキップするパターン- 戻り値:
- 現在のスキャナ
- 例外:
NoSuchElementException
- 指定されたパターンが見つからない場合IllegalStateException
- このスキャナがクローズしている場合
-
skip
指定された文字列で構築されたパターンに一致する入力をスキップします。skip(pattern)
形式のこのメソッドの呼出しは、起動skip(Pattern.compile(pattern))
とまったく同じように動作します。- パラメータ:
pattern
- スキップするパターンを指定する文字列- 戻り値:
- 現在のスキャナ
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
hasNextBoolean
public boolean hasNextBoolean()文字列「true|false」から作成された大文字と小文字の区別されないパターンを使用して、スキャナの入力内の次のトークンをboolean値として解釈可能であれば、trueを返します。 スキャナが一致した入力の先に進むことはありません。- 戻り値:
- このスキャナの次のトークンが有効なboolean値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
nextBoolean
public boolean nextBoolean()入力の次のトークンをboolean値としてスキャンして、その値を返します。 次のトークンを有効なboolean値に変換できない場合、このメソッドはInputMismatchException
をスローします。 マッチングに成功すると、スキャナは一致した入力の先に進みます。- 戻り値:
- 入力からスキャンしたboolean値
- 例外:
InputMismatchException
- 次のトークンが有効なboolean値ではない場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
hasNextByte
public boolean hasNextByte()このスキャナの入力内の次のトークンが、nextByte()
メソッドを使ってデフォルト基数のbyte値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合- 戻り値:
- このスキャナの次のトークンが有効なbyte値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
hasNextByte
public boolean hasNextByte(int radix) このスキャナの入力内の次のトークンが、nextByte()
メソッドを使って、指定された基数のbyte値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンをbyte値として解釈するために使用する基数- 戻り値:
- このスキャナの次のトークンが有効なbyte値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
nextByte
public byte nextByte()入力の次のトークンをbyte
としてスキャンします。nextByte()
という形式のこのメソッドの呼出しは、nextByte(radix)
の起動とまったく同じように動作します。ここで、radix
はこのスキャナのデフォルトの基数です。- 戻り値:
- 入力からスキャンされた
byte
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
nextByte
public byte nextByte(int radix) 入力の次のトークンをbyte
としてスキャンします。 次に示す方法で、次のトークンを有効なbyte値に変換できない場合、このメソッドはInputMismatchException
をスローします。 変換に成功すると、スキャナは一致した入力の先に進みます。次のトークンが前述のInteger正規表現に一致する場合、すべてのロケール固有のプレフィクス、グループ・セパレータおよびロケール固有のサフィクスを削除するかのように、トークンは
byte
値に変換されます。Character.digit
を介してASCII以外の桁をASCII数字にマッピングし、ロケール固有の負のプレフィクスおよびサフィクスが存在する場合は負の記号(-)を先頭に付け、指定された基数で結果の文字列をByte.parseByte
に渡します。基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンをbyte値として解釈するために使用する基数- 戻り値:
- 入力からスキャンされた
byte
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
hasNextShort
public boolean hasNextShort()このスキャナの入力内の次のトークンが、nextShort()
メソッドを使ってデフォルト基数のshort値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合- 戻り値:
- このスキャナの次のトークンがデフォルトの基数の有効なshort値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
hasNextShort
public boolean hasNextShort(int radix) このスキャナの入力内の次のトークンが、nextShort()
メソッドを使って、指定された基数のshort値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンをshort値として解釈するために使用する基数- 戻り値:
- このスキャナの次のトークンが指定された基数の有効なshort値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
nextShort
public short nextShort()入力の次のトークンをshort
としてスキャンします。nextShort()
形式のこのメソッドの呼出しは、nextShort(radix)
の呼出しとまったく同じように動作します。radix
はこのスキャナのデフォルトの基数です。- 戻り値:
- 入力からスキャンされた
short
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
nextShort
public short nextShort(int radix) 入力の次のトークンをshort
としてスキャンします。 次に示す方法で、次のトークンを有効なshort値に変換できない場合、このメソッドはInputMismatchException
をスローします。 変換に成功すると、スキャナは一致した入力の先に進みます。次のトークンが前述のInteger正規表現に一致する場合、すべてのロケール固有のプレフィクス、グループ・セパレータおよびロケール固有のサフィクスを削除するかのように、トークンは
short
値に変換されます。Character.digit
を介してASCII以外の桁をASCII数字にマッピングし、ロケール固有の負のプレフィクスおよびサフィクスが存在する場合は負の記号(-)を先頭に付け、指定された基数で結果の文字列をShort.parseShort
に渡します。基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンをshort値として解釈するために使用する基数- 戻り値:
- 入力からスキャンされた
short
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
hasNextInt
public boolean hasNextInt()このスキャナの入力内の次のトークンが、nextInt()
メソッドを使ってデフォルト基数のint値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合- 戻り値:
- このスキャナの次のトークンが有効なint値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
hasNextInt
public boolean hasNextInt(int radix) このスキャナの入力内の次のトークンが、nextInt()
メソッドを使って、指定された基数のint値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンをint値として解釈するために使用する基数- 戻り値:
- このスキャナの次のトークンが有効なint値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
nextInt
public int nextInt()入力の次のトークンをint
としてスキャンします。nextInt()
という形式のこのメソッドの呼出しは、nextInt(radix)
の起動とまったく同じように動作します。ここで、radix
はこのスキャナのデフォルトの基数です。- 戻り値:
- 入力からスキャンされた
int
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
nextInt
public int nextInt(int radix) 入力の次のトークンをint
としてスキャンします。 次に示す方法で、次のトークンを有効なint値に変換できない場合、このメソッドはInputMismatchException
をスローします。 変換に成功すると、スキャナは一致した入力の先に進みます。次のトークンが前述のInteger正規表現と一致する場合、すべてのロケール固有のプレフィクス、グループ・セパレータおよびロケール固有のサフィクスを削除するかのように、トークンは
int
値に変換されます。Character.digit
を介してASCII以外の桁をASCII数字にマッピングし、ロケール固有の負のプレフィクスおよびサフィクスが存在する場合は負の記号(-)を先頭に付け、指定された基数で結果の文字列をInteger.parseInt
に渡します。基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンをint値として解釈するために使用する基数- 戻り値:
- 入力からスキャンされた
int
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
hasNextLong
public boolean hasNextLong()このスキャナの入力内の次のトークンが、nextLong()
メソッドを使ってデフォルト基数のlong値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合- 戻り値:
- このスキャナの次のトークンが有効なlong値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
hasNextLong
public boolean hasNextLong(int radix) このスキャナの入力内の次のトークンが、nextLong()
メソッドを使って、指定された基数のlong値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンをlong値として解釈するために使用する基数- 戻り値:
- このスキャナの次のトークンが有効なlong値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
nextLong
public long nextLong()入力の次のトークンをlong
としてスキャンします。nextLong()
という形式のこのメソッドの呼出しは、nextLong(radix)
の起動とまったく同じように動作します。ここで、radix
はこのスキャナのデフォルトの基数です。- 戻り値:
- 入力からスキャンされた
long
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
nextLong
public long nextLong(int radix) 入力の次のトークンをlong
としてスキャンします。 次に示す方法で、次のトークンを有効なlong値に変換できない場合、このメソッドはInputMismatchException
をスローします。 変換に成功すると、スキャナは一致した入力の先に進みます。次のトークンが前述のInteger正規表現に一致する場合、すべてのロケール固有のプレフィクス、グループ・セパレータおよびロケール固有のサフィクスを削除するかのように、トークンは
long
値に変換されます。Character.digit
を介してASCII以外の桁をASCII数字にマッピングし、ロケール固有の負のプレフィクスおよびサフィクスが存在する場合は負の記号(-)を先頭に付け、指定された基数で結果の文字列をLong.parseLong
に渡します。基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンをint値として解釈するために使用する基数- 戻り値:
- 入力からスキャンされた
long
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
hasNextFloat
public boolean hasNextFloat()このスキャナの入力内の次のトークンが、nextFloat()
メソッドを使ってfloat値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合- 戻り値:
- このスキャナの次のトークンが有効なfloat値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
nextFloat
public float nextFloat()入力の次のトークンをfloat
としてスキャンします。 次に示す方法で、次のトークンを有効なfloat値に変換できない場合、このメソッドはInputMismatchException
をスローします。 変換に成功すると、スキャナは一致した入力の先に進みます。次のトークンが前述のFloat正規表現と一致する場合、すべてのロケール固有のプレフィクス、グループ・セパレータおよびロケール固有のサフィクスを削除するかのように、トークンは
float
値に変換されます。次に、Character.digit
を使用してASCII以外の桁をASCII数字にマッピングし、ロケール固有の負のプレフィクスおよびサフィクスが存在する場合は負の記号(-)を先頭に付け、結果の文字列をFloat.parseFloat
に渡します。 トークンがローカライズされたNaNまたは無限大文字列にマッチする場合、NaNまたはInfinityが必要に応じてFloat.parseFloat
に渡されます。- 戻り値:
- 入力からスキャンされた
float
- 例外:
InputMismatchException
- 次のトークンがFloat正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
hasNextDouble
public boolean hasNextDouble()このスキャナの入力内の次のトークンが、nextDouble()
メソッドを使ってdouble値として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合- 戻り値:
- このスキャナの次のトークンが有効なdouble値である場合にのみ、true
- 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
nextDouble
public double nextDouble()入力の次のトークンをdouble
としてスキャンします。 次のトークンを有効なdouble値に変換できない場合、このメソッドはInputMismatchException
をスローします。 変換に成功すると、スキャナは一致した入力の先に進みます。次のトークンが前述のFloat正規表現と一致する場合、すべてのロケール固有のプレフィクス、グループ・セパレータおよびロケール固有のサフィクスを削除するかのように、トークンは
double
値に変換されます。次に、Character.digit
を使用してASCII以外の桁をASCII数字にマッピングし、ロケール固有の負のプレフィクスおよびサフィクスが存在する場合は負の記号(-)を先頭に付け、結果の文字列をDouble.parseDouble
に渡します。 トークンがローカライズされたNaNまたは無限大文字列にマッチする場合、NaNまたはInfinityが必要に応じてDouble.parseDouble
に渡されます。- 戻り値:
- 入力からスキャンされた
double
- 例外:
InputMismatchException
- 次のトークンがFloat正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
hasNextBigInteger
public boolean hasNextBigInteger()このスキャナの入力内の次のトークンが、nextBigInteger()
メソッドを使ってデフォルト基数のBigInteger
として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合- 戻り値:
- このスキャナの次のトークンが有効な
BigInteger
である場合にのみ、true - 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
hasNextBigInteger
public boolean hasNextBigInteger(int radix) このスキャナの入力内の次のトークンが、nextBigInteger()
メソッドを使って、指定された基数のBigInteger
として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンを整数として解釈するために使用する基数- 戻り値:
- このスキャナの次のトークンが有効な
BigInteger
である場合にのみ、true - 例外:
IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
nextBigInteger
public BigInteger nextBigInteger()入力の次のトークンをBigInteger
としてスキャンします。nextBigInteger()
という形式のこのメソッドの呼出しは、nextBigInteger(radix)
の起動とまったく同じように動作します。ここで、radix
はこのスキャナのデフォルトの基数です。- 戻り値:
- 入力からスキャンされた
BigInteger
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
nextBigInteger
public BigInteger nextBigInteger(int radix) 入力の次のトークンをBigInteger
としてスキャンします。次のトークンが前述のInteger正規表現と一致する場合、トークンは、すべてのグループ・セパレータを削除し、
Character.digit
を介してASCII以外の桁をASCII桁にマッピングし、指定された基数で結果の文字列をBigInteger(String, int)
コンストラクタに渡す場合と同様に、BigInteger
値に変換されます。基数が
Character.MIN_RADIX
より小さいか、Character.MAX_RADIX
より大きい場合は、IllegalArgumentException
がスローされます。- パラメータ:
radix
- トークンの解釈に使用する基数- 戻り値:
- 入力からスキャンされた
BigInteger
- 例外:
InputMismatchException
- 次のトークンがInteger正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合IllegalArgumentException
- 基数が範囲外の場合
-
hasNextBigDecimal
public boolean hasNextBigDecimal()このスキャナの入力内の次のトークンが、nextBigDecimal()
メソッドを使ってBigDecimal
として解釈可能な場合にtrueを返します。 このスキャナがクローズしている場合- 戻り値:
- このスキャナの次のトークンが有効な
BigDecimal
である場合にのみ、true - 例外:
IllegalStateException
- このスキャナがクローズしている場合
-
nextBigDecimal
public BigDecimal nextBigDecimal()入力の次のトークンをBigDecimal
としてスキャンします。次のトークンが前述の「小数」正規表現と一致する場合、トークンは、すべてのグループ・セパレータを削除し、
Character.digit
を介してASCII以外の桁をASCII桁にマッピングし、結果の文字列をBigDecimal(String)
コンストラクタに渡すかのように、BigDecimal
値に変換されます。- 戻り値:
- 入力からスキャンされた
BigDecimal
- 例外:
InputMismatchException
- 次のトークンがDecimal正規表現に一致しないか範囲外である場合NoSuchElementException
- スキャンする入力がなくなった場合IllegalStateException
- このスキャナがクローズしている場合
-
reset
public Scanner reset()現在のスキャナをリセットします。スキャナをリセットすると、
useDelimiter()
、useLocale()
、またはuseRadix()
の呼び出しによって変更された明示的な状態情報がすべて破棄されます。scanner.reset()
形式のこのメソッドの起動は、起動とまったく同じように動作scanner.useDelimiter("\\p{javaWhitespace}+") .useLocale(Locale.getDefault(Locale.Category.FORMAT)) .useRadix(10);
- 戻り値:
- 現在のスキャナ
- 導入されたバージョン:
- 1.6
-
tokens
このスキャナからデリミタで区切られたトークンのストリームを返します。 ストリームには、hasNext()
メソッドがfalseを返すまでnext()
メソッドを繰り返しコールすることで、このスキャナの現在の状態から戻されるトークンと同じトークンが含まれます。結果のストリームは順番に並べられ、順序付けられます。 すべてのストリーム要素がnullではありません。
スキャンは、このスキャナの現在の状態を使用して、端末ストリーム操作の開始時に開始されます。
close()
およびioException()
以外のこのスキャナに対する後続のメソッドをコールすると、未定義の結果が返されるか、戻されたストリームに未定義の影響が発生する可能性があります。 返されたストリームのソースSpliterator
はfail-fastで、ストリーム・パイプラインの実行中にそのようなコールが検出された場合は、ベスト・エフォート・ベースでConcurrentModificationException
をスローします。ストリーム・パイプラインの実行が完了すると、このスキャナは不確定な状態のままになり、再利用できません。
このスキャナに解放する必要があるリソースが含まれている場合、このスキャナは、
close()
メソッドをコールするか、戻されたストリームをクローズしてクローズする必要があります。 ストリームを閉じると、基礎となるスキャナが閉じられます。IllegalStateException
は、このメソッドがコールされたときにスキャナがクローズされた場合、またはストリーム・パイプラインの実行中にこのスキャナがクローズされた場合にスローされます。このメソッドは、より多くの入力の待機をブロックすることがあります。
- APIのノート:
- たとえば、次のコードは、文字列からカンマ区切りのトークンのリストを作成します:
List<String> result = new Scanner("abc,def,,ghi") .useDelimiter(",") .tokens() .collect(Collectors.toList());
結果のリストには、
"abc"
、"def"
、空の文字列および"ghi"
が含まれます。 - 戻り値:
- トークン列の連続ストリーム
- 例外:
IllegalStateException
- このスキャナがクローズしている場合- 導入されたバージョン:
- 9
-
findAll
public Stream<MatchResult> findAll(Pattern pattern) このスキャナから一致結果のストリームを返します。 ストリームには、findWithinHorizon()
が一致を検出するかぎり、findWithinHorizon(pattern, 0)
をコールしてmatch()
を連続して戻す順序と同じ結果が含まれます。結果のストリームは順番に並べられ、順序付けられます。 すべてのストリーム要素がnullではありません。
スキャンは、このスキャナの現在の状態を使用して、端末ストリーム操作の開始時に開始されます。
close()
およびioException()
以外のこのスキャナに対する後続のメソッドをコールすると、未定義の結果が返されるか、戻されたストリームに未定義の影響が発生する可能性があります。 返されたストリームのソースSpliterator
はfail-fastで、ストリーム・パイプラインの実行中にそのようなコールが検出された場合は、ベスト・エフォート・ベースでConcurrentModificationException
をスローします。ストリーム・パイプラインの実行が完了すると、このスキャナは不確定な状態のままになり、再利用できません。
このスキャナに解放する必要があるリソースが含まれている場合、このスキャナは、
close()
メソッドをコールするか、戻されたストリームをクローズしてクローズする必要があります。 ストリームを閉じると、基礎となるスキャナが閉じられます。IllegalStateException
は、このメソッドがコールされたときにスキャナがクローズされた場合、またはストリーム・パイプラインの実行中にこのスキャナがクローズされた場合にスローされます。findWithinHorizon()
メソッドと同様に、このメソッドは追加入力の待機をブロックし、一致を検索するための無制限の入力をバッファリングする場合があります。- APIのノート:
- たとえば、次のコードはファイルを読み取り、7つ以上のラテン文字からなるすべての文字シーケンスのリストを返します:
try (Scanner sc = new Scanner(Path.of("input.txt"))) { Pattern pat = Pattern.compile("[A-Z]{7,}"); List<String> capWords = sc.findAll(pat) .map(MatchResult::group) .collect(Collectors.toList()); }
- パラメータ:
pattern
- 照合するパターン- 戻り値:
- 一致結果の連続ストリーム
- 例外:
NullPointerException
- パターンがnullの場合IllegalStateException
- このスキャナがクローズしている場合- 導入されたバージョン:
- 9
-
findAll
public Stream<MatchResult> findAll(String patString) 指定されたパターン文字列に一致する一致結果のストリームを返します。 この効果は次のコードと同じです:scanner.findAll(Pattern.compile(patString))
- パラメータ:
patString
- パターン文字列- 戻り値:
- 一致結果の連続ストリーム
- 例外:
NullPointerException
- patStringがnullの場合IllegalStateException
- このスキャナがクローズしている場合PatternSyntaxException
- 正規表現の構文が無効な場合- 導入されたバージョン:
- 9
- 関連項目:
-