- java.lang.Object
-
- java.util.Scanner
-
- すべての実装されたインタフェース:
Closeable,AutoCloseable,Iterator<String>
public final class Scanner extends Object implements Iterator<String>, Closeable
正規表現を使用してプリミティブ型および文字列の構文解析が可能な、単純なテキスト・スキャナです。Scannerは、区切り文字のパターンを使用して入力をトークンに分割します。デフォルトでは区切り文字は空白文字です。 結果として得られるトークンは、さまざまなnextメソッドを使用して、異なる型の値に変換できます。たとえば、次のコードを使用して、
System.inから数値を読み込むことができます。Scanner sc = new Scanner(System.in); 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がスローされた場合、スキャナは入力の終わりに達したとみなします。 基となるreadableによりスローされた最新の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
- 1000位の区切り文字。すなわち、
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:
- 非ASCII文字c (
Character.isDigit(c)がtrueを返す) - Non0Digit:
[1-Rmax] |NonASCIIDigit- Digit:
[0-Rmax] |NonASCIIDigit- GroupedNumeral:
(Non0Digit 「桁」?「桁」?(LocalGroupSeparator Digit Digit Digit)+ )- Numeral:
( (Digit+ ) |GroupedNumeral)- Integer:
( [-+]? (「数字」) )|LocalPositivePrefix 「数字」 LocalPositiveSuffix|LocalNegativePrefix 「数字」 LocalNegativeSuffix- DecimalNumeral:
- Numeral
|Numeral LocalDecimalSeparator Digit*|LocalDecimalSeparator Digit+ - Exponent:
( [eE] [+-]?「桁」+ )- Decimal:
( [-+]?DecimalNumeral 「指数」? )|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(File source)指定されたファイルからスキャンされた値を生成する新しいScannerを構築します。Scanner(File source, String charsetName)指定されたファイルからスキャンされた値を生成する新しいScannerを構築します。Scanner(File source, Charset charset)指定されたファイルからスキャンされた値を生成する新しいScannerを構築します。Scanner(InputStream source)指定された入力ストリームからスキャンされた値を生成する新しいScannerを構築します。Scanner(InputStream source, String charsetName)指定された入力ストリームからスキャンされた値を生成する新しいScannerを構築します。Scanner(InputStream source, Charset charset)指定された入力ストリームからスキャンされた値を生成する新しいScannerを構築します。Scanner(Readable source)指定されたソースからスキャンされた値を生成するScannerを新しく構築します。Scanner(String source)指定された文字列からスキャンされた値を生成するScannerを新しく構築します。Scanner(ReadableByteChannel source)指定されたチャネルからスキャンされた値を生成する新しいScannerを構築します。Scanner(ReadableByteChannel source, String charsetName)指定されたチャネルからスキャンされた値を生成する新しいScannerを構築します。Scanner(ReadableByteChannel source, Charset charset)指定されたチャネルからスキャンされた値を生成する新しいScannerを構築します。Scanner(Path source)指定されたファイルからスキャンされた値を生成する新しいScannerを構築します。Scanner(Path source, String charsetName)指定されたファイルからスキャンされた値を生成する新しいScannerを構築します。Scanner(Path source, Charset charset)指定されたファイルからスキャンされた値を生成する新しいScannerを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 voidclose()現在のスキャナをクローズします。Patterndelimiter()このScannerが区切り文字のマッチングに現在使用しているPatternを返します。Stream<MatchResult>findAll(String patString)提供されたパターン文字列と一致する一致結果のストリームを返します。Stream<MatchResult>findAll(Pattern pattern)このスキャナからの一致結果のストリームを返します。StringfindInLine(String pattern)区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。StringfindInLine(Pattern pattern)区切り文字を無視して、次に現れる指定されたパターンの検索を試みます。StringfindWithinHorizon(String pattern, int horizon)区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。StringfindWithinHorizon(Pattern pattern, int horizon)次に現れる指定されたパターンの検索を試みます。booleanhasNext()このスキャナが入力内に別のトークンを保持する場合はtrueを返します。booleanhasNext(String pattern)次のトークンが、指定された文字列から構築されたパターンに一致する場合はtrueを返します。booleanhasNext(Pattern pattern)次の完全なトークンが指定されたパターンに一致する場合はtrueを返します。booleanhasNextBigDecimal()このスキャナの入力内の次のトークンが、nextBigDecimal()メソッドを使ってBigDecimalとして解釈可能な場合にtrueを返します。booleanhasNextBigInteger()このスキャナの入力内の次のトークンが、nextBigInteger()メソッドを使ってデフォルト基数のBigIntegerとして解釈可能な場合にtrueを返します。booleanhasNextBigInteger(int radix)このスキャナの入力内の次のトークンが、nextBigInteger()メソッドを使って、指定された基数のBigIntegerとして解釈可能な場合にtrueを返します。booleanhasNextBoolean()文字列「true|false」から作成された大文字と小文字の区別されないパターンを使用して、スキャナの入力内の次のトークンをboolean値として解釈可能であれば、trueを返します。booleanhasNextByte()このスキャナの入力内の次のトークンが、nextByte()メソッドを使ってデフォルト基数のbyte値として解釈可能な場合にtrueを返します。booleanhasNextByte(int radix)このスキャナの入力内の次のトークンが、nextByte()メソッドを使って、指定された基数のbyte値として解釈可能な場合にtrueを返します。booleanhasNextDouble()このスキャナの入力内の次のトークンが、nextDouble()メソッドを使ってdouble値として解釈可能な場合にtrueを返します。booleanhasNextFloat()このスキャナの入力内の次のトークンが、nextFloat()メソッドを使ってfloat値として解釈可能な場合にtrueを返します。booleanhasNextInt()このスキャナの入力内の次のトークンが、nextInt()メソッドを使ってデフォルト基数のint値として解釈可能な場合にtrueを返します。booleanhasNextInt(int radix)このスキャナの入力内の次のトークンが、nextInt()メソッドを使って、指定された基数のint値として解釈可能な場合にtrueを返します。booleanhasNextLine()このスキャナの入力に別の行がある場合はtrueを返します。booleanhasNextLong()このスキャナの入力内の次のトークンが、nextLong()メソッドを使ってデフォルト基数のlong値として解釈可能な場合にtrueを返します。booleanhasNextLong(int radix)このスキャナの入力内の次のトークンが、nextLong()メソッドを使って、指定された基数のlong値として解釈可能な場合にtrueを返します。booleanhasNextShort()このスキャナの入力内の次のトークンが、nextShort()メソッドを使ってデフォルト基数のshort値として解釈可能な場合にtrueを返します。booleanhasNextShort(int radix)このスキャナの入力内の次のトークンが、nextShort()メソッドを使って、指定された基数のshort値として解釈可能な場合にtrueを返します。IOExceptionioException()このScannerの基となるReadableによって最後にスローされたIOExceptionを返します。Localelocale()現在のスキャナのロケールを返します。MatchResultmatch()このスキャナが実行した最後のスキャン操作のマッチング結果を返します。Stringnext()このスキャナから次の完全なトークンを検索して返します。Stringnext(String pattern)次のトークンが指定された文字列から構築されたパターンに一致する場合にのみ、それを返します。Stringnext(Pattern pattern)指定されたパターンに一致する次のトークンを返します。BigDecimalnextBigDecimal()入力の次のトークンをBigDecimalとしてスキャンします。BigIntegernextBigInteger()入力の次のトークンをBigIntegerとしてスキャンします。BigIntegernextBigInteger(int radix)入力の次のトークンをBigIntegerとしてスキャンします。booleannextBoolean()入力の次のトークンをboolean値としてスキャンして、その値を返します。bytenextByte()入力の次のトークンをbyteとしてスキャンします。bytenextByte(int radix)入力の次のトークンをbyteとしてスキャンします。doublenextDouble()入力の次のトークンをdoubleとしてスキャンします。floatnextFloat()入力の次のトークンをfloatとしてスキャンします。intnextInt()入力の次のトークンをintとしてスキャンします。intnextInt(int radix)入力の次のトークンをintとしてスキャンします。StringnextLine()スキャナを現在行の先に進めて、スキップした入力を返します。longnextLong()入力の次のトークンをlongとしてスキャンします。longnextLong(int radix)入力の次のトークンをlongとしてスキャンします。shortnextShort()入力の次のトークンをshortとしてスキャンします。shortnextShort(int radix)入力の次のトークンをshortとしてスキャンします。intradix()現在のスキャナのデフォルト基数を返します。voidremove()removeオペレーションは、このIteratorの実装によってサポートされていません。Scannerreset()現在のスキャナをリセットします。Scannerskip(String pattern)指定された文字列で構築されたパターンに一致する入力をスキップします。Scannerskip(Pattern pattern)指定されたパターンに一致する入力を、区切り文字を無視してスキップします。Stream<String>tokens()このスキャナから区切り記号で区切られたトークンのストリームを返します。StringtoString()このScannerの文字列表現を返します。ScanneruseDelimiter(String pattern)このスキャナの区切り文字パターンを、指定されたStringから作成されたパターンに設定します。ScanneruseDelimiter(Pattern pattern)このスキャナの区切り文字パターンを、指定されたパターンに設定します。ScanneruseLocale(Locale locale)スキャナのロケールを指定されたロケールに設定します。ScanneruseRadix(int radix)スキャナのデフォルト基数を指定された基数に設定します。-
インタフェース java.util.Iteratorで宣言されたメソッド
forEachRemaining
-
-
-
-
コンストラクタの詳細
-
Scanner
public Scanner(Readable source)
指定されたソースからスキャンされた値を生成するScannerを新しく構築します。- パラメータ:
source-Readableインタフェースを実装する文字ソース
-
Scanner
public Scanner(InputStream source)
指定された入力ストリームからスキャンされた値を生成する新しいScannerを構築します。 ストリームから取得したバイトは、基になるプラットフォームのデフォルト文字セットを使用して文字に変換されます。- パラメータ:
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を構築します。 ファイルから取得したバイトは、基になるプラットフォームのデフォルト文字セットを使用して文字に変換されます。- パラメータ:
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を構築します。 ファイルから取得したバイトは、基になるプラットフォームのデフォルト文字セットを使用して文字に変換されます。- パラメータ:
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
public Scanner(String source)
指定された文字列からスキャンされた値を生成するScannerを新しく構築します。- パラメータ:
source- スキャンする文字列
-
Scanner
public Scanner(ReadableByteChannel source)
指定されたチャネルからスキャンされた値を生成する新しいScannerを構築します。 ソースから取得したバイトは、基になるプラットフォームのデフォルト文字セットを使用して文字に変換されます。- パラメータ:
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インタフェースも実装する場合、readableのcloseメソッドが呼び出されます。 このスキャナがすでに閉じられている場合、このメソッドを呼び出しても何も起こりません。スキャナがクローズしたあとで検索操作の実行を試みると、
IllegalStateExceptionがスローされます。- 定義:
close、インタフェース:AutoCloseable- 定義:
close、インタフェース:Closeable
-
ioException
public IOException ioException()
このScannerの基となるReadableによって最後にスローされたIOExceptionを返します。 そのような例外が存在しない場合、このメソッドはnullを返します。- 戻り値:
- このスキャナのreadableが最後にスローした例外
-
delimiter
public Pattern delimiter()
このScannerが区切り文字のマッチングに現在使用しているPatternを返します。- 戻り値:
- このスキャナの区切り文字パターン
-
useDelimiter
public Scanner useDelimiter(Pattern pattern)
このスキャナの区切り文字パターンを、指定されたパターンに設定します。- パラメータ:
pattern- 区切り文字パターン- 戻り値:
- 現在のスキャナ
-
useDelimiter
public Scanner useDelimiter(String pattern)
このスキャナの区切り文字パターンを、指定されたStringから作成されたパターンに設定します。このメソッドを
useDelimiter(pattern)の形式で呼び出した場合、useDelimiter(Pattern.compile(pattern))の呼び出しと同じ結果が得られます。- パラメータ:
pattern- 区切り文字パターンを指定する文字列- 戻り値:
- 現在のスキャナ
-
locale
public Locale locale()
現在のスキャナのロケールを返します。スキャナのロケールは、デフォルトのプリミティブ一致正規表現の多数の要素に影響を及ぼします。前述の「ローカライズの数」を参照してください。
- 戻り値:
- 現在のスキャナのロケール
-
useLocale
public Scanner useLocale(Locale locale)
スキャナのロケールを指定されたロケールに設定します。スキャナのロケールは、デフォルトのプリミティブ一致正規表現の多数の要素に影響を及ぼします。前述の「ローカライズの数」を参照してください。
- パラメータ:
locale- 使用するロケールを指定する文字列- 戻り値:
- 現在のスキャナ
-
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
public String toString()
この
Scannerの文字列表現を返します。Scannerの文字列表現には、デバッグに有用な情報が含まれます。 厳密な書式は指定されません。
-
hasNext
public boolean hasNext()
このスキャナが入力内に別のトークンを保持する場合はtrueを返します。 このメソッドは、入力のスキャンの待機中にブロックを実行する可能性があります。 このスキャナがクローズしている場合- 定義:
hasNext、インタフェース:Iterator<String>- 戻り値:
- このスキャナが別のトークンを保持する場合にのみtrue
- 例外:
IllegalStateException- このスキャナがクローズしている場合- 関連項目:
Iterator
-
next
public String next()
このスキャナから次の完全なトークンを検索して返します。 完全なトークンの前後には、区切り文字パターンに一致する入力が配置されます。 このメソッドは、前のhasNext()の呼出しでtrueが返された場合でも、入力のスキャンの待機中にブロックを実行する可能性があります。- 定義:
next、インタフェース:Iterator<String>- 戻り値:
- 次のトークン
- 例外:
NoSuchElementException- 利用可能なトークンがこれ以上存在しない場合IllegalStateException- このスキャナがクローズしている場合- 関連項目:
Iterator
-
remove
public void remove()
removeオペレーションは、このIteratorの実装によってサポートされていません。- 定義:
remove、インタフェース:Iterator<String>- 例外:
UnsupportedOperationException- このメソッドが呼び出された場合。- 関連項目:
Iterator
-
hasNext
public boolean hasNext(String pattern)
次のトークンが、指定された文字列から構築されたパターンに一致する場合はtrueを返します。 このスキャナがクローズしている場合このメソッドを
hasNext(pattern)の形式で呼び出した場合、hasNext(Pattern.compile(pattern))の呼び出しと同じ結果が得られます。- パラメータ:
pattern- スキャンするパターンを指定する文字列- 戻り値:
- このスキャナが指定されたパターンに一致する別のトークンを保持する場合にのみtrue
- 例外:
IllegalStateException- このスキャナがクローズしている場合
-
next
public String next(String pattern)
次のトークンが指定された文字列から構築されたパターンに一致する場合にのみ、それを返します。 マッチングに成功すると、スキャナはパターンに一致した入力の先に進みます。このメソッドを
next(pattern)の形式で呼び出した場合、next(Pattern.compile(pattern))の呼び出しと同じ結果が得られます。- パラメータ:
pattern- スキャンするパターンを指定する文字列- 戻り値:
- 次のトークン
- 例外:
NoSuchElementException- 指定されたトークンが利用できない場合IllegalStateException- このスキャナがクローズしている場合
-
hasNext
public boolean hasNext(Pattern pattern)
次の完全なトークンが指定されたパターンに一致する場合はtrueを返します。 完全なトークンの前後には、区切り文字パターンに一致する入力が配置されます。 このメソッドは、入力の待機中にブロックを実行する可能性があります。 このスキャナがクローズしている場合- パラメータ:
pattern- スキャンするパターン- 戻り値:
- このスキャナが指定されたパターンに一致する別のトークンを保持する場合にのみtrue
- 例外:
IllegalStateException- このスキャナがクローズしている場合
-
next
public String next(Pattern pattern)
指定されたパターンに一致する次のトークンを返します。 このメソッドは、前のhasNext(Pattern)の呼出しでtrueが返された場合でも、入力のスキャンの待機中にブロックを実行する可能性があります。 マッチングに成功すると、スキャナはパターンに一致した入力の先に進みます。- パラメータ:
pattern- スキャンするパターン- 戻り値:
- 次のトークン
- 例外:
NoSuchElementException- 利用可能なトークンがこれ以上存在しない場合IllegalStateException- このスキャナがクローズしている場合
-
hasNextLine
public boolean hasNextLine()
このスキャナの入力に別の行がある場合はtrueを返します。 このメソッドは、入力の待機中にブロックを実行する可能性があります。 このスキャナがクローズしている場合- 戻り値:
- このスキャナが別の入力行を保持する場合にのみtrue
- 例外:
IllegalStateException- このスキャナがクローズしている場合
-
nextLine
public String nextLine()
スキャナを現在行の先に進めて、スキップした入力を返します。 このメソッドは、最後の行区切り文字を除く、現在行の残りを返します。 位置は、次の行の最初に設定されます。このメソッドは行区切り文字の検索を入力内で続行するため、行区切り文字が存在しない場合、スキップする行を検索する入力をすべてバッファすることがあります。
- 戻り値:
- スキップされた行
- 例外:
NoSuchElementException- 行が見つからなかった場合IllegalStateException- このスキャナがクローズしている場合
-
findInLine
public String findInLine(String pattern)
区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。このメソッドを
findInLine(pattern)の形式で呼び出した場合、findInLine(Pattern.compile(pattern))の呼び出しと同じ結果が得られます。- パラメータ:
pattern- 検索するパターンを指定する文字列- 戻り値:
- 指定されたパターンに一致したテキスト
- 例外:
IllegalStateException- このスキャナがクローズしている場合
-
findInLine
public String findInLine(Pattern pattern)
区切り文字を無視して、次に現れる指定されたパターンの検索を試みます。 次の行区切り文字より前にパターンが見つかった場合、スキャナは一致した入力の先に進み、パターンに一致した文字列を返します。 次の行区切り文字よりも前に該当するパターンが見つからなかった場合は、nullが返され、スキャナの位置は変更されません。 このメソッドは、パターンに一致する入力の待機をブロックする場合があります。このメソッドは指定されたパターンの検索を入力内で続行するため、行区切り文字が存在しない場合、該当するトークンを検索する入力をすべてバッファすることがあります。
- パラメータ:
pattern- スキャンするパターン- 戻り値:
- 指定されたパターンに一致したテキスト
- 例外:
IllegalStateException- このスキャナがクローズしている場合
-
findWithinHorizon
public String findWithinHorizon(String pattern, int horizon)
区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。このメソッドを
findWithinHorizon(pattern)の形式で呼び出した場合、findWithinHorizon(Pattern.compile(pattern), horizon)の呼び出しと同じ結果が得られます。- パラメータ:
pattern- 検索するパターンを指定する文字列horizon- 検索horizon- 戻り値:
- 指定されたパターンに一致したテキスト
- 例外:
IllegalStateException- このスキャナがクローズしている場合IllegalArgumentException- horizonが負の値の場合
-
findWithinHorizon
public String findWithinHorizon(Pattern pattern, int horizon)
次に現れる指定されたパターンの検索を試みます。このメソッドは指定された検索horizonまで区切り文字を無視して入力内で行区切り文字の検索を続行します。 パターンが見つかった場合、スキャナは一致した入力の先に進み、パターンに一致した文字列を返します。 該当するパターンが検出されない場合は、nullが返され、スキャナの位置は変更されません。 このメソッドは、パターンに一致する入力の待機をブロックする場合があります。
スキャナは、現在位置を超える
horizonコード・ポイント以上の検索を決して実行しません。 マッチングはhorizonによりクリップされる場合があります。つまり、horizonがより大きい場合、任意のマッチング結果が異なっている可能性があります。 スキャナは、horizonを、透過的な非アンカー境界として扱います(Matcher.useTransparentBounds(boolean)およびMatcher.useAnchoringBounds(boolean)を参照)。horizonが
0の場合、horizonは無視され、このメソッドは入力内で指定されたパターンの検索を続行します。パターンの検索には制限がありません。 また、パターンの検索中にすべての入力をバッファできます。horizonが負の場合は、IllegalArgumentExceptionがスローされます。
- パラメータ:
pattern- スキャンするパターンhorizon- 検索horizon- 戻り値:
- 指定されたパターンに一致したテキスト
- 例外:
IllegalStateException- このスキャナがクローズしている場合IllegalArgumentException- horizonが負の値の場合
-
skip
public Scanner skip(Pattern pattern)
指定されたパターンに一致する入力を、区切り文字を無視してスキップします。 指定されたパターンの先頭一致が成功すると、このメソッドは入力をスキップします。現在の位置で指定されたパターンへのマッチングが見つからない場合、入力はスキップされず、
NoSuchElementExceptionがスローされます。このメソッドは、指定されたパターンへのマッチングをスキャナの現在位置から検索するため、「*」のように多数の入力に一致する可能性のあるパターンを指定すると、スキャナが大量の入力をバッファする場合があります。
sc.skip("[\t]*")のように、何にも一致しないパターンを使用することで、NoSuchElementExceptionがスローされる危険を冒すことなくスキップすることが可能です。- パラメータ:
pattern- スキップするパターンを指定する文字列- 戻り値:
- 現在のスキャナ
- 例外:
NoSuchElementException- 指定されたパターンが見つからない場合IllegalStateException- このスキャナがクローズしている場合
-
skip
public Scanner skip(String pattern)
指定された文字列で構築されたパターンに一致する入力をスキップします。このメソッドを
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正規表現にマッチする場合には、ロケール固有のすべての接頭辞、グループ区切り文字、およびロケール固有の接尾辞を削除し、
Character.digitによって非ASCII数字をASCII数字にマッピングし、ロケール固有の負の接頭辞および接尾辞が存在していた場合には負の符号(-)を前に付け、結果の文字列をFloat.parseFloatに渡すことで、トークンがfloat値に変換されます。 トークンがローカライズされた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正規表現にマッチする場合には、ロケール固有のすべての接頭辞、グループ区切り文字、およびロケール固有の接尾辞を削除し、
Character.digitによって非ASCII数字をASCII数字にマッピングし、ロケール固有の負の接頭辞および接尾辞が存在していた場合には負の符号(-)を前に付け、結果の文字列をDouble.parseDoubleに渡すことで、トークンがdouble値に変換されます。 トークンがローカライズされた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としてスキャンします。次のトークンが前述のDecimal正規表現に一致すると、すべてのグループ区切り文字を削除し、
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
public Stream<String> 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(pattern, 0)を呼び出してからmatch()を呼び出して返される同じ順序で同じ結果が含まれます。findWithinHorizon()が一致している限り、連続しています。結果のストリームはシーケンシャルで順序付けされています。 すべてのストリーム要素がnullではありません。
このスキャナの現在の状態を使用して、ターミナル・ストリーム操作の開始時にスキャンが開始されます。
close()およびioException()以外のこのスキャナ上のメソッドへのその後の呼び出しは、未定義の結果を返すか、返されたストリームに未定義の影響を与える可能性があります。 返されるストリーム・ソースSpliteratorはfail-fastであり、ストリーム・パイプライン実行中にそのような呼び出しが検出された場合、ベスト・エフォート・ベースでConcurrentModificationExceptionをスローします。ストリーム・パイプラインの実行が完了すると、このスキャナは不確定な状態のままになり、再利用できなくなります。
このスキャナに解放する必要のあるリソースが含まれている場合、このスキャナは
close()メソッドを呼び出すか、返されたストリームを閉じることによって閉じなければなりません。 ストリームを閉じると、基になるスキャナが閉じます。IllegalStateExceptionは、このメソッドが呼び出されたときにスキャナが閉じられた場合、またはストリーム・パイプライン実行中にこのスキャナが閉じられた場合にスローされます。findWithinHorizon()メソッドと同様に、このメソッドは追加の入力を待機するのをブロックし、無限の量の入力をバッファリングして一致するものを検索します。- APIの注:
- たとえば、次のコードはファイルを読み取り、7つ以上のラテン大文字で構成されるすべての文字列のリストを返します:
try (Scanner sc = new Scanner(Paths.get("input.txt"))) { Pattern pat = Pattern.compile("[A-Z]{7,}"); List<String> capWords = sc.findAll(pat) .map(MatchResult::group) .collect(Collectors.toList()); } - パラメータ:
pattern- 照合するパターン- 戻り値:
- 一致結果の連続ストリーム
- 例外:
NullPointerException- patternがnullである場合IllegalStateException- このスキャナがクローズしている場合- 導入されたバージョン:
- 9
-
findAll
public Stream<MatchResult> findAll(String patString)
提供されたパターン文字列と一致する一致結果のストリームを返します。 この効果は次のコードと同じです:scanner.findAll(Pattern.compile(patString))- パラメータ:
patString- パターン文字列- 戻り値:
- 一致結果の連続ストリーム
- 例外:
NullPointerException- patStringがnullの場合IllegalStateException- このスキャナがクローズしている場合PatternSyntaxException- 正規表現の構文が無効な場合- 導入されたバージョン:
- 9
- 関連項目:
Pattern
-
-