- すべての実装されたインタフェース:
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:
( [-+]? (Numeral) )|LocalPositivePrefix Numeral LocalPositiveSuffix|LocalNegativePrefix Numeral 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を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明voidclose()現在のスキャナをクローズします。このScannerが区切り文字のマッチングに現在使用しているPatternを返します。指定されたパターン文字列に一致する一致結果のストリームを返します。このスキャナから一致結果のストリームを返します。findInLine(String pattern) 区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。findInLine(Pattern pattern) 区切り文字を無視して、次に現れる指定されたパターンの検索を試みます。findWithinHorizon(String pattern, int horizon) 区切り文字を無視して、次に現れる、指定された文字列から構築されたパターンの検索を試みます。findWithinHorizon(Pattern pattern, int horizon) 次に現れる指定されたパターンの検索を試みます。booleanhasNext()このスキャナが入力内に別のトークンを保持する場合はtrueを返します。boolean次のトークンが、指定された文字列から構築されたパターンに一致する場合はtrueを返します。boolean次の完全なトークンが指定されたパターンに一致する場合はtrueを返します。booleanこのスキャナの入力内の次のトークンが、nextBigDecimal()メソッドを使ってBigDecimalとして解釈可能な場合にtrueを返します。booleanこのスキャナの入力内の次のトークンが、nextBigInteger()メソッドを使ってデフォルト基数のBigIntegerとして解釈可能な場合にtrueを返します。booleanhasNextBigInteger(int radix) このスキャナの入力内の次のトークンが、nextBigInteger()メソッドを使って、指定された基数のBigIntegerとして解釈可能な場合にtrueを返します。boolean文字列「true|false」から作成された大文字と小文字の区別されないパターンを使用して、スキャナの入力内の次のトークンをboolean値として解釈可能であれば、trueを返します。booleanこのスキャナの入力内の次のトークンが、nextByte()メソッドを使ってデフォルト基数のbyte値として解釈可能な場合にtrueを返します。booleanhasNextByte(int radix) このスキャナの入力内の次のトークンが、nextByte()メソッドを使って、指定された基数のbyte値として解釈可能な場合にtrueを返します。booleanこのスキャナの入力内の次のトークンが、nextDouble()メソッドを使ってdouble値として解釈可能な場合にtrueを返します。booleanこのスキャナの入力内の次のトークンが、nextFloat()メソッドを使ってfloat値として解釈可能な場合にtrueを返します。booleanこのスキャナの入力内の次のトークンが、nextInt()メソッドを使ってデフォルト基数のint値として解釈可能な場合にtrueを返します。booleanhasNextInt(int radix) このスキャナの入力内の次のトークンが、nextInt()メソッドを使って、指定された基数のint値として解釈可能な場合にtrueを返します。booleanこのスキャナの入力に別の行がある場合はtrueを返します。booleanこのスキャナの入力内の次のトークンが、nextLong()メソッドを使ってデフォルト基数のlong値として解釈可能な場合にtrueを返します。booleanhasNextLong(int radix) このスキャナの入力内の次のトークンが、nextLong()メソッドを使って、指定された基数のlong値として解釈可能な場合にtrueを返します。booleanこのスキャナの入力内の次のトークンが、nextShort()メソッドを使ってデフォルト基数のshort値として解釈可能な場合にtrueを返します。booleanhasNextShort(int radix) このスキャナの入力内の次のトークンが、nextShort()メソッドを使って、指定された基数のshort値として解釈可能な場合にtrueを返します。このScannerの基となるReadableによって最後にスローされたIOExceptionを返します。locale()現在のスキャナのロケールを返します。match()このスキャナが実行した最後のスキャン操作のマッチング結果を返します。next()このスキャナから次の完全なトークンを検索して返します。次のトークンが指定された文字列から構築されたパターンに一致する場合にのみ、それを返します。指定されたパターンに一致する次のトークンを返します。入力の次のトークンをBigDecimalとしてスキャンします。入力の次のトークンをBigIntegerとしてスキャンします。nextBigInteger(int radix) 入力の次のトークンをBigIntegerとしてスキャンします。boolean入力の次のトークンをboolean値としてスキャンして、その値を返します。bytenextByte()入力の次のトークンをbyteとしてスキャンします。bytenextByte(int radix) 入力の次のトークンをbyteとしてスキャンします。double入力の次のトークンをdoubleとしてスキャンします。float入力の次のトークンをfloatとしてスキャンします。intnextInt()入力の次のトークンをintとしてスキャンします。intnextInt(int radix) 入力の次のトークンをintとしてスキャンします。nextLine()スキャナを現在行の先に進めて、スキップした入力を返します。longnextLong()入力の次のトークンをlongとしてスキャンします。longnextLong(int radix) 入力の次のトークンをlongとしてスキャンします。short入力の次のトークンをshortとしてスキャンします。shortnextShort(int radix) 入力の次のトークンをshortとしてスキャンします。intradix()現在のスキャナのデフォルト基数を返します。voidremove()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
public Scanner(Readable source) 指定されたソースからスキャンされた値を生成するScannerを新しく構築します。- パラメータ:
source-Readableインタフェースを実装する文字ソース
-
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
public Scanner(String source) 指定された文字列からスキャンされた値を生成するScannerを新しく構築します。- パラメータ:
source- スキャンする文字列
-
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
public Pattern delimiter()このScannerが区切り文字のマッチングに現在使用しているPatternを返します。- 戻り値:
- このスキャナの区切り文字パターン
-
useDelimiter
このスキャナの区切り文字パターンを、指定されたパターンに設定します。- パラメータ:
pattern- 区切り文字パターン- 戻り値:
- 現在のスキャナ
-
useDelimiter
このスキャナの区切り文字パターンを、指定されたStringから作成されたパターンに設定します。useDelimiter(pattern)形式のこのメソッドの呼出しは、起動useDelimiter(Pattern.compile(pattern))とまったく同じように動作します。- パラメータ:
pattern- 区切り文字パターンを指定する文字列- 戻り値:
- 現在のスキャナ
-
locale
public Locale locale()現在のスキャナのロケールを返します。スキャナのロケールは、デフォルトのプリミティブ一致正規表現の多数の要素に影響を及ぼします。前述の「ローカライズの数」を参照してください。
- 戻り値:
- 現在のスキャナのロケール
-
useLocale
スキャナのロケールを指定されたロケールに設定します。スキャナのロケールは、デフォルトのプリミティブ一致正規表現の多数の要素に影響を及ぼします。前述の「ローカライズの数」を参照してください。
- パラメータ:
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- このスキャナがクローズしている場合- 関連項目:
-
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
- 関連項目:
-