java.lang.Object | |
↳ | java.util.Scanner |
A parser that parses a text string of primitive types and strings with the help of regular expressions. It supports localized numbers and various radixes. The input is broken into tokens by the delimiter pattern, which is whitespace by default. The primitive types can be obtained via corresponding next* methods. If the token is not in a valid format, an InputMismatchException
is thrown.
For example:
Scanner s = new Scanner("1A true");
System.out.println(s.nextInt(16));
System.out.println(s.nextBoolean());
Yields the result: 26 true
A Scanner
can also find or skip specific patterns without regard for the delimiter. All these methods and the various next* and hasNext* methods may block.
The Scanner
class is not thread-safe.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Creates a
Scanner with the specified
File as input.
|
||||||||||
|
Creates a
Scanner with the specified
File as input.
|
||||||||||
|
Creates a
Scanner on the specified string.
|
||||||||||
|
Creates a
Scanner on the specified
InputStream .
|
||||||||||
|
Creates a
Scanner on the specified
InputStream .
|
||||||||||
|
Creates a
Scanner with the specified
Readable as input.
|
||||||||||
|
Creates a
Scanner with the specified
ReadableByteChannel as input.
|
||||||||||
|
Creates a
Scanner with the specified
ReadableByteChannel as input.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Closes this
Scanner and the underlying input if the input implements
Closeable .
|
||||||||||
|
Returns the delimiter
Pattern in use by this
Scanner .
|
||||||||||
|
Compiles the pattern string and tries to find a substing matching it in the input data.
|
||||||||||
|
Tries to find the pattern in the input.
|
||||||||||
|
Tries to find the pattern in the input between the current position and the specified horizon.
|
||||||||||
|
Tries to find the pattern in the input between the current position and the specified
horizon .
|
||||||||||
|
Returns whether this
Scanner has one or more tokens remaining to parse.
|
||||||||||
|
Returns
true if this
Scanner has one or more tokens remaining to parse and the next token matches a pattern compiled from the given string.
|
||||||||||
|
Returns whether this
Scanner has one or more tokens remaining to parse and the next token matches the given pattern.
|
||||||||||
|
Returns whether the next token can be translated into a valid
BigDecimal .
|
||||||||||
|
Returns whether the next token can be translated into a valid
BigInteger in the specified radix.
|
||||||||||
|
Returns whether the next token can be translated into a valid
BigInteger in the default radix.
|
||||||||||
|
Returns whether the next token can be translated into a valid
boolean value.
|
||||||||||
|
Returns whether the next token can be translated into a valid
byte value in the default radix.
|
||||||||||
|
Returns whether the next token can be translated into a valid
byte value in the specified radix.
|
||||||||||
|
Returns whether the next token translated into a valid
double value.
|
||||||||||
|
Returns whether the next token can be translated into a valid
float value.
|
||||||||||
|
Returns whether the next token can be translated into a valid
int value in the specified radix.
|
||||||||||
|
Returns whether the next token can be translated into a valid
int value in the default radix.
|
||||||||||
|
Returns whether there is a line terminator in the input.
|
||||||||||
|
Returns whether the next token can be translated into a valid
long value in the specified radix.
|
||||||||||
|
Returns whether the next token can be translated into a valid
long value in the default radix.
|
||||||||||
|
Returns whether the next token can be translated into a valid
short value in the specified radix.
|
||||||||||
|
Returns whether the next token can be translated into a valid
short value in the default radix.
|
||||||||||
|
Returns the last
IOException that was raised while reading from the underlying input.
|
||||||||||
|
Return the
Locale of this
Scanner .
|
||||||||||
|
Returns the result of the last matching operation.
|
||||||||||
|
Returns the next token.
|
||||||||||
|
Returns the next token if it matches the specified pattern.
|
||||||||||
|
Returns the next token if it matches the specified pattern.
|
||||||||||
|
Returns the next token as a
BigDecimal .
|
||||||||||
|
Returns the next token as a
BigInteger with the specified radix.
|
||||||||||
|
Returns the next token as a
BigInteger .
|
||||||||||
|
Returns the next token as a
boolean .
|
||||||||||
|
Returns the next token as a
byte .
|
||||||||||
|
Returns the next token as a
byte with the specified radix.
|
||||||||||
|
Returns the next token as a
double .
|
||||||||||
|
Returns the next token as a
float .
|
||||||||||
|
Returns the next token as an
int with the specified radix.
|
||||||||||
|
Returns the next token as an
int .
|
||||||||||
|
Returns the skipped input and advances the
Scanner to the beginning of the next line.
|
||||||||||
|
Returns the next token as a
long with the specified radix.
|
||||||||||
|
Returns the next token as a
long .
|
||||||||||
|
Returns the next token as a
short with the specified radix.
|
||||||||||
|
Returns the next token as a
short .
|
||||||||||
|
Return the radix of this
Scanner .
|
||||||||||
|
Remove is not a supported operation on
Scanner .
|
||||||||||
|
Resets this scanner's delimiter, locale, and radix.
|
||||||||||
|
Tries to use the specified string to construct a pattern and then uses the constructed pattern to match input starting from the current position.
|
||||||||||
|
Tries to use specified pattern to match input starting from the current position.
|
||||||||||
|
Returns a string representation of this
Scanner .
|
||||||||||
|
Sets the delimiting pattern of this
Scanner with a pattern compiled from the supplied string value.
|
||||||||||
|
Sets the delimiting pattern of this
Scanner .
|
||||||||||
|
Sets the
Locale of this
Scanner to a specified
Locale .
|
||||||||||
|
Sets the radix of this
Scanner to the specified radix.
|
[Expand]
Inherited Methods
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
|||||||||||
![]() |
Creates a Scanner
with the specified File
as input. The default charset is applied when reading the file.
src | the file to be scanned. |
---|
FileNotFoundException | if the specified file does not exist. |
---|
Creates a Scanner
with the specified File
as input. The specified charset is applied when reading the file.
src | the file to be scanned. |
---|---|
charsetName | the name of the encoding type of the file. |
FileNotFoundException | if the specified file does not exist. |
---|---|
IllegalArgumentException | if the specified coding does not exist. |
Creates a Scanner
on the specified string.
src | the string to be scanned. |
---|
Creates a Scanner
on the specified InputStream
. The default charset is applied when decoding the input.
src | the InputStream to be scanned. |
---|
Creates a Scanner
on the specified InputStream
. The specified charset is applied when decoding the input.
src | the InputStream to be scanned. |
---|---|
charsetName | the encoding type of the InputStream . |
IllegalArgumentException | if the specified character set is not found. |
---|
Creates a Scanner
with the specified Readable
as input.
src | the Readable to be scanned. |
---|
Creates a Scanner
with the specified ReadableByteChannel
as input. The default charset is applied when decoding the input.
src | the ReadableByteChannel to be scanned. |
---|
Creates a Scanner
with the specified ReadableByteChannel
as input. The specified charset is applied when decoding the input.
src | the ReadableByteChannel to be scanned. |
---|---|
charsetName | the encoding type of the content. |
IllegalArgumentException | if the specified character set is not found. |
---|
Closes this Scanner
and the underlying input if the input implements Closeable
. If the Scanner
has been closed, this method will have no effect. Any scanning operation called after calling this method will throw an IllegalStateException
.
Returns the delimiter Pattern
in use by this Scanner
.
Pattern
in use by this Scanner
. Compiles the pattern string and tries to find a substing matching it in the input data. The delimiter will be ignored. This is the same as invoking findInLine(Pattern.compile(pattern))
.
pattern | a string used to construct a pattern which is in turn used to match a substring of the input data. |
---|
null
if the pattern is not found before the next line terminator.IllegalStateException | if the Scanner is closed. |
---|
Tries to find the pattern in the input. Delimiters are ignored. If the pattern is found before line terminator, the matched string will be returned, and the Scanner
will advance to the end of the matched string. Otherwise, null
will be returned and the Scanner
will not advance. When waiting for input, the Scanner
may be blocked. All the input may be cached if no line terminator exists in the buffer.
pattern | the pattern to find in the input. |
---|
null
if the pattern is not found before the next line terminator.IllegalStateException | if the Scanner is closed. |
---|
Tries to find the pattern in the input between the current position and the specified horizon. Delimiters are ignored. If the pattern is found, the matched string will be returned, and the Scanner
will advance to the end of the matched string. Otherwise, null will be returned and Scanner
will not advance. When waiting for input, the Scanner
may be blocked.
The Scanner
's search will never go more than horizon
code points from current position. The position of horizon
does have an effect on the result of the match. For example, when the input is "123" and current position is at zero, findWithinHorizon(Pattern.compile("\\p{Digit}{3}"), 2)
will return null
, while findWithinHorizon(Pattern.compile("\\p{Digit}{3}"), 3)
will return "123"
. horizon
is treated as a transparent, non-anchoring bound. (refer to useTransparentBounds(boolean)
and useAnchoringBounds(boolean)
)
A horizon
whose value is zero will be ignored and the whole input will be used for search. In this situation, all the input may be cached.
pattern | the pattern used to scan. |
---|---|
horizon | the search limit. |
null
if the pattern is not found within the specified horizon
.IllegalStateException | if the Scanner is closed. |
---|---|
IllegalArgumentException | if horizon is less than zero. |
Tries to find the pattern in the input between the current position and the specified horizon
. Delimiters are ignored. This call is the same as invoking findWithinHorizon(Pattern.compile(pattern))
.
pattern | the pattern used to scan. |
---|---|
horizon | the search limit. |
null
if the pattern is not found within the specified horizon.IllegalStateException | if the Scanner is closed. |
---|---|
IllegalArgumentException | if horizon is less than zero. |
Returns whether this Scanner
has one or more tokens remaining to parse. This method will block if the data is still being read.
true
if this Scanner
has one or more tokens remaining, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns true
if this Scanner
has one or more tokens remaining to parse and the next token matches a pattern compiled from the given string. This method will block if the data is still being read. This call is equivalent to hasNext(Pattern.compile(pattern))
.
pattern | the string specifying the pattern to scan for |
---|
true
if the specified pattern matches this Scanner
's next token, false
otherwise.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether this Scanner
has one or more tokens remaining to parse and the next token matches the given pattern. This method will block if the data is still being read.
pattern | the pattern to check for. |
---|
true
if this Scanner
has more tokens and the next token matches the pattern, false
otherwise.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid BigDecimal
.
true
if the next token can be translated into a valid BigDecimal
, otherwise false.
IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid BigInteger
in the specified radix.
radix | the radix used to translate the token into a BigInteger . |
---|
true
if the next token can be translated into a valid BigInteger
, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid BigInteger
in the default radix.
true
if the next token can be translated into a valid BigInteger
, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid boolean
value.
true
if the next token can be translated into a valid boolean
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid byte
value in the default radix.
true
if the next token can be translated into a valid byte
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid byte
value in the specified radix.
radix | the radix used to translate the token into a byte value |
---|
true
if the next token can be translated into a valid byte
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token translated into a valid double
value.
true
if the next token can be translated into a valid double
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid float
value.
true
if the next token can be translated into a valid float
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid int
value in the specified radix.
radix | the radix used to translate the token into an int value. |
---|
true
if the next token in this Scanner
's input can be translated into a valid int
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid int
value in the default radix.
true
if the next token can be translated into a valid int
value, otherwise false
.IllegalStateException | if the Scanner has been closed, |
---|
Returns whether there is a line terminator in the input. This method may block.
true
if there is a line terminator in the input, otherwise, false
.IllegalStateException | if the Scanner is closed. |
---|
Returns whether the next token can be translated into a valid long
value in the specified radix.
radix | the radix used to translate the token into a long value. |
---|
true
if the next token can be translated into a valid long
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid long
value in the default radix.
true
if the next token can be translated into a valid long
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid short
value in the specified radix.
radix | the radix used to translate the token into a short value. |
---|
true
if the next token can be translated into a valid short
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns whether the next token can be translated into a valid short
value in the default radix.
true
if the next token can be translated into a valid short
value, otherwise false
.IllegalStateException | if the Scanner has been closed. |
---|
Returns the last IOException
that was raised while reading from the underlying input.
IOException
, or null
if none was thrown. Return the Locale
of this Scanner
.
Locale
of this Scanner
. Returns the result of the last matching operation.
The next* and find* methods return the match result in the case of a successful match.
IllegalStateException | if the match result is not available, of if the last match was not successful. |
---|
Returns the next token. The token will be both prefixed and postfixed by the delimiter that is currently being used (or a string that matches the delimiter pattern). This method will block if input is being read.
IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
Returns the next token if it matches the specified pattern. The token will be both prefixed and postfixed by the delimiter that is currently being used (or a string that matches the delimiter pattern). This method will block if input is being read.
pattern | the specified pattern to scan. |
---|
IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token does not match the pattern given. |
Returns the next token if it matches the specified pattern. The token will be both prefixed and postfixed by the delimiter that is currently being used (or a string that matches the delimiter pattern). This method will block if input is being read. Calling this method is equivalent to next(Pattern.compile(pattern))
.
pattern | the string specifying the pattern to scan for. |
---|
IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token does not match the pattern given. |
Returns the next token as a BigDecimal
. This method will block if input is being read. If the next token can be translated into a BigDecimal
the following is done: All Locale
-specific prefixes, group separators, and Locale
-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via digit(char, int)
, and a negative sign (-) is added if the Locale
-specific negative prefix or suffix was present. Finally the resulting string is passed to BigDecimal(String)
.
BigDecimal
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid BigDecimal . |
Returns the next token as a BigInteger
with the specified radix. This method will block if input is being read. If the next token can be translated into a BigInteger
the following is done: All Locale
-specific prefixes, group separators, and Locale
-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via digit(char, int)
, and a negative sign (-) is added if the Locale
-specific negative prefix or suffix was present. Finally the resulting String is passed to BigInteger(String, int)
} with the specified radix.
radix | the radix used to translate the token into a BigInteger . |
---|
BigInteger
IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid BigInteger . |
Returns the next token as a BigInteger
. This method will block if input is being read. Equivalent to nextBigInteger(DEFAULT_RADIX)
.
BigInteger
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid BigInteger . |
Returns the next token as a boolean
. This method will block if input is being read.
boolean
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid boolean value. |
Returns the next token as a byte
. This method will block if input is being read. Equivalent to nextByte(DEFAULT_RADIX)
.
byte
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid byte value. |
Returns the next token as a byte
with the specified radix. Will block if input is being read. If the next token can be translated into a byte
the following is done: All Locale
-specific prefixes, group separators, and Locale
-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via digit(char, int)
, and a negative sign (-) is added if the Locale
-specific negative prefix or suffix was present. Finally the resulting String is passed to parseByte(String, int)
} with the specified radix.
radix | the radix used to translate the token into byte value. |
---|
byte
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid byte value. |
Returns the next token as a double
. This method will block if input is being read. If the next token can be translated into a double
the following is done: All Locale
-specific prefixes, group separators, and Locale
-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via digit(char, int)
, and a negative sign (-) is added if the Locale
-specific negative prefix or suffix was present. Finally the resulting String is passed to parseDouble(String)
}. If the token matches the localized NaN or infinity strings, it is also passed to parseDouble(String)
}.
double
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid double value. |
Returns the next token as a float
. This method will block if input is being read. If the next token can be translated into a float
the following is done: All Locale
-specific prefixes, group separators, and Locale
-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via digit(char, int)
, and a negative sign (-) is added if the Locale
-specific negative prefix or suffix was present. Finally the resulting String is passed to parseFloat(String)
}.If the token matches the localized NaN or infinity strings, it is also passed to parseFloat(String)
}.
float
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid float value. |
Returns the next token as an int
with the specified radix. This method will block if input is being read. If the next token can be translated into an int
the following is done: All Locale
-specific prefixes, group separators, and Locale
-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via digit(char, int)
, and a negative sign (-) is added if the Locale
-specific negative prefix or suffix was present. Finally the resulting String is passed to parseInt(String, int)
with the specified radix.
radix | the radix used to translate the token into an int value. |
---|
int
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid int value. |
Returns the next token as an int
. This method will block if input is being read. Equivalent to nextInt(DEFAULT_RADIX)
.
int
IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid int value. |
Returns the skipped input and advances the Scanner
to the beginning of the next line. The returned result will exclude any line terminator. When searching, if no line terminator is found, then a large amount of input will be cached. If no line at all can be found, a NoSuchElementException
will be thrown.
IllegalStateException | if the Scanner is closed. |
---|---|
NoSuchElementException | if no line can be found, e.g. when input is an empty string. |
Returns the next token as a long
with the specified radix. This method will block if input is being read. If the next token can be translated into a long
the following is done: All Locale
-specific prefixes, group separators, and Locale
-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via digit(char, int)
, and a negative sign (-) is added if the Locale
-specific negative prefix or suffix was present. Finally the resulting String is passed to parseLong(String, int)
} with the specified radix.
radix | the radix used to translate the token into a long value. |
---|
long
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid long value. |
Returns the next token as a long
. This method will block if input is being read. Equivalent to nextLong(DEFAULT_RADIX)
.
long
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid long value. |
Returns the next token as a short
with the specified radix. This method will block if input is being read. If the next token can be translated into a short
the following is done: All Locale
-specific prefixes, group separators, and Locale
-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via digit(char, int)
, and a negative sign (-) is added if the Locale
-specific negative prefix or suffix was present. Finally the resulting String is passed to parseShort(String, int)
} with the specified radix.
radix | the radix used to translate the token into short value. |
---|
short
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid short value. |
Returns the next token as a short
. This method will block if input is being read. Equivalent to nextShort(DEFAULT_RADIX)
.
short
.IllegalStateException | if this Scanner has been closed. |
---|---|
NoSuchElementException | if input has been exhausted. |
InputMismatchException | if the next token can not be translated into a valid short value. |
Return the radix of this Scanner
.
Scanner
Remove is not a supported operation on Scanner
.
UnsupportedOperationException | if this method is invoked. |
---|
Resets this scanner's delimiter, locale, and radix.
Tries to use the specified string to construct a pattern and then uses the constructed pattern to match input starting from the current position. The delimiter will be ignored. This call is the same as invoke skip(Pattern.compile(pattern))
.
pattern | the string used to construct a pattern which in turn is used to match input. |
---|
Scanner
itself.IllegalStateException | if the Scanner is closed. |
---|
Tries to use specified pattern to match input starting from the current position. The delimiter will be ignored. If a match is found, the matched input will be skipped. If an anchored match of the specified pattern succeeds, the corresponding input will also be skipped. Otherwise, a NoSuchElementException
will be thrown. Patterns that can match a lot of input may cause the Scanner
to read in a large amount of input.
pattern | used to skip over input. |
---|
Scanner
itself.IllegalStateException | if the Scanner is closed. |
---|---|
NoSuchElementException | if the specified pattern match fails. |
Returns a string representation of this Scanner
. The information returned may be helpful for debugging. The format of the string is unspecified.
Scanner
. Sets the delimiting pattern of this Scanner
with a pattern compiled from the supplied string value.
pattern | a string from which a Pattern can be compiled. |
---|
Scanner
. Sets the delimiting pattern of this Scanner
.
pattern | the delimiting pattern to use. |
---|
Scanner
. Sets the Locale
of this Scanner
to a specified Locale
.
l | the specified Locale to use. |
---|
Scanner
. Sets the radix of this Scanner
to the specified radix.
radix | the specified radix to use. |
---|
Scanner
.