public final class Scanner extends Object implements Iterator<String>, Closeable
一个Scanner
打破它的输入令牌使用分隔符模式,默认匹配空格。由此产生的令牌,然后可以转换成价值的不同类型使用不同的next方法。
例如,该代码允许用户从System.in读数:
Scanner sc = new Scanner(System.in); int i = sc.nextInt();
另一个例子,这个代码允许long
类型被分配从项目文件中的myNumbers
:
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
相同的输出可以生成这个代码,它使用一个正则表达式来解析所有四个令牌一次:
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();
由扫描仪使用的default whitespace delimiter是公认的Character
.isWhitespace
,reset()
方法将重置扫描仪的分隔符的值为默认空白分隔符无论是以前的改变。
扫描操作可能会阻止等待输入。
的next()
和hasNext()
方法及其原始型伴侣的方法(如nextInt()
和hasNextInt()
)先跳过匹配分隔符模式的任何输入,然后尝试返回下一个标记。两hasNext和next方法会阻塞等待进一步的输入。是否hasNext方法块没有连接是否相关next方法将阻塞。
的findInLine(java.lang.String)
,findWithinHorizon(java.lang.String, int)
,和skip(java.util.regex.Pattern)
方法独立操作分隔模式。这些方法将指定的模式在输入分隔符没有比赛,因此可以在分隔符是不相关的特殊情况。这些方法可能会阻止等待更多的输入。
当抛出一个InputMismatchException
扫描仪,扫描仪不会导致异常的标记,以便它可以检索或通过其他方法了。
根据类型的划分模式,空符号可以返回。例如,模式"\\s+"将不返回空令牌,因为它与分隔的多个实例。划分模式"\\s"可以返回空令牌,因为它只通过一个空间在一个时间。
扫描仪可以从任何对象实现了Readable
接口读取文本。如果基础可读的Readable.read(java.nio.CharBuffer)
方法调用抛出一个IOException
之后扫描仪假定输入的结束了。最近的IOException下可读扔可以通过ioException()
方法。
当一个Scanner
是封闭的,它会如果源实现Closeable
接口关闭输入源。
一个Scanner
不安全的多线程的使用没有外部同步。
除非另有说明,通过null
参数的方法Scanner
会造成NullPointerException
被。
扫描仪将默认为十进制数字口译除非不同的基数已经用useRadix(int)
方法。该方法将reset()
扫描仪的基数值重置为10
无论是以前的改变。
这个类的一个实例可以在标准格式中扫描数字,也可以用扫描仪的区域设置的格式进行扫描。由Locale.getDefault(Locale.Category.FORMAT)
方法返回一个扫描仪的initial locale is价值;它可以通过改变useLocale(java.util.Locale)
方法。的reset()
方法将重置扫描仪的现场值初始现场无论是以前的改变。
局部格式在下面的参数来定义的,这对于一个特定的区域是从现场的DecimalFormat
对象,df,及其与DecimalFormatSymbols
对象,dfs。
- LocalGroupSeparator
- The character used to separate thousands groups, i.e., dfs.
getGroupingSeparator()
- LocalDecimalSeparator
- The character used for the decimal point, i.e., dfs.
getDecimalSeparator()
- LocalPositivePrefix
- The string that appears before a positive number (may be empty), i.e., df.
getPositivePrefix()
- LocalPositiveSuffix
- The string that appears after a positive number (may be empty), i.e., df.
getPositiveSuffix()
- LocalNegativePrefix
- The string that appears before a negative number (may be empty), i.e., df.
getNegativePrefix()
- LocalNegativeSuffix
- The string that appears after a negative number (may be empty), i.e., df.
getNegativeSuffix()
- LocalNaN
- The string that represents not-a-number for floating-point values, i.e., dfs.
getNaN()
- LocalInfinity
- The string that represents infinity for floating-point values, i.e., dfs.
getInfinity()
可以解释为通过这个类的实例数在下面的正则表达式语法指定的字符串,其中Rmax在基数使用最高的数字(例如,Rmax为9基地10)。
Character.isDigit
(c)返回 真实
在上面的正则表达式的空格是不重要的。
Constructor and Description |
---|
Scanner(File source)
构建产生扫描指定的文件价值的一个新
Scanner 。
|
Scanner(File source, String charsetName)
构建了一种新的
Scanner 产生扫描从指定文件中的值。
|
Scanner(InputStream source)
构建产生扫描从指定的输入流值的新
Scanner 。
|
Scanner(InputStream source, String charsetName)
构建产生扫描从指定的输入流值的新
Scanner 。
|
Scanner(Path source)
构建产生扫描指定的文件价值的一个新
Scanner 。
|
Scanner(Path source, String charsetName)
构建产生扫描指定的文件价值的一个新
Scanner 。
|
Scanner(Readable source)
构建产生扫描从指定的源值的新
Scanner 。
|
Scanner(ReadableByteChannel source)
构建产生扫描从指定通道值的新
Scanner 。
|
Scanner(ReadableByteChannel source, String charsetName)
构建产生扫描从指定通道值的新
Scanner 。
|
Scanner(String source)
构建产生扫描指定的字符串值的新
Scanner 。
|
Modifier and Type | Method and Description |
---|---|
void |
close()
关闭此扫描仪。
|
Pattern |
delimiter()
返回
Pattern 这
Scanner 目前使用匹配符。
|
String |
findInLine(Pattern pattern)
试图找到指定的模式忽略分隔符下发生。
|
String |
findInLine(String pattern)
试图找到一个由指定的字符串模式下发生,忽略分隔符。
|
String |
findWithinHorizon(Pattern pattern, int horizon)
试图找到指定模式的下一个发生。
|
String |
findWithinHorizon(String pattern, int horizon)
试图找到一个由指定的字符串模式下发生,忽略分隔符。
|
boolean |
hasNext()
如果此扫描在其输入中有另一个标记,则返回真。
|
boolean |
hasNext(Pattern pattern)
如果下一个完整的标记与指定的模式匹配,则返回真。
|
boolean |
hasNext(String pattern)
如果下一个令牌与由指定字符串构造的模式匹配,则返回真。
|
boolean |
hasNextBigDecimal()
如果在这种扫描仪的输入下一个标记可以被解释为一个
BigDecimal 使用
nextBigDecimal() 方法返回true。
|
boolean |
hasNextBigInteger()
如果在这种扫描仪的输入下一个标记可以被解释为一个
BigInteger 使用
nextBigInteger() 方法在默认基数返回true。
|
boolean |
hasNextBigInteger(int radix)
如果在这种扫描仪的输入下一个标记可以被解释为一个
BigInteger 使用
nextBigInteger() 方法在指定的基数返回true。
|
boolean |
hasNextBoolean()
返回true如果这个扫描仪输入下一个标记可以被解释为一个布尔值使用大小写不敏感的模式创建的字符串“真正的|假”。
|
boolean |
hasNextByte()
如果在这种扫描仪的输入下一个标记可以被解释为一个使用
nextByte() 方法在默认进制字节值返回true。
|
boolean |
hasNextByte(int radix)
如果在这种扫描仪的输入下一个标记可以被解释为一个使用
nextByte() 方法指定进制字节值返回true。
|
boolean |
hasNextDouble()
如果在这种扫描仪的输入下一个标记可以被解释为使用
nextDouble() 法双值返回true。
|
boolean |
hasNextFloat()
如果在这种扫描仪的输入下一个标记可以被解释为一个使用
nextFloat() 法float值返回true。
|
boolean |
hasNextInt()
如果在这种扫描仪的输入下一个标记可以被解释为使用
nextInt() 方法在默认为int值返回true。
|
boolean |
hasNextInt(int radix)
如果在这种扫描仪的输入下一个标记可以被解释为使用
nextInt() 方法在指定的基数一个int值返回true。
|
boolean |
hasNextLine()
如果在扫描仪的输入中有另一行,则返回真行。
|
boolean |
hasNextLong()
如果在这种扫描仪的输入下一个标记可以被解释为使用
nextLong() 方法在默认的根长值返回true。
|
boolean |
hasNextLong(int radix)
如果在这种扫描仪的输入下一个标记可以被解释为使用
nextLong() 方法在指定的基数长值返回true。
|
boolean |
hasNextShort()
如果在这种扫描仪的输入下一个标记可以被解释为使用
nextShort() 方法在默认基数短值返回true。
|
boolean |
hasNextShort(int radix)
如果在这种扫描仪的输入下一个标记可以被解释为使用
nextShort() 方法在指定的基数短值返回true。
|
IOException |
ioException()
返回
IOException 最后被这个
Scanner 潜在的
Readable 。
|
Locale |
locale()
返回此扫描仪的区域设置。
|
MatchResult |
match()
返回由该扫描仪执行的最后一次扫描操作的匹配结果。
|
String |
next()
查找并返回此扫描仪的下一个完整标记。
|
String |
next(Pattern pattern)
返回下一个标记,如果它与指定的模式相匹配。
|
String |
next(String pattern)
返回下一个标记,如果它与从指定字符串构造的模式相匹配。
|
BigDecimal |
nextBigDecimal()
扫描输入下一个标记为
BigDecimal 。
|
BigInteger |
nextBigInteger()
扫描输入下一个标记为
BigInteger 。
|
BigInteger |
nextBigInteger(int radix)
扫描输入下一个标记为
BigInteger 。
|
boolean |
nextBoolean()
扫描输入的下一个令牌到一个布尔值,并返回该值。
|
byte |
nextByte()
扫描输入下一个标记为
byte。
|
byte |
nextByte(int radix)
扫描输入下一个标记为
byte。
|
double |
nextDouble()
扫描输入下一个标记为
double。
|
float |
nextFloat()
扫描输入下一个标记为
float。
|
int |
nextInt()
扫描输入下一个标记为
int。
|
int |
nextInt(int radix)
扫描输入下一个标记为
int。
|
String |
nextLine()
将此扫描仪扫描到当前行,并返回跳过的输入。
|
long |
nextLong()
扫描输入下一个标记为
long。
|
long |
nextLong(int radix)
扫描输入下一个标记为
long。
|
short |
nextShort()
扫描输入下一个标记为
short。
|
short |
nextShort(int radix)
扫描输入下一个标记为
short。
|
int |
radix()
返回此扫描仪的默认基数。
|
void |
remove()
删除操作是不被执行
Iterator 支持。
|
Scanner |
reset()
重置该扫描仪。
|
Scanner |
skip(Pattern pattern)
跳过输入匹配指定模式,忽略分隔符。
|
Scanner |
skip(String pattern)
跳过输入匹配由指定的字符串模式。
|
String |
toString()
这
Scanner 返回的字符串表示形式。
|
Scanner |
useDelimiter(Pattern pattern)
设置扫描仪的界定模式指定的模式。
|
Scanner |
useDelimiter(String pattern)
设置扫描仪的界定模式构造从指定的
String 模式。
|
Scanner |
useLocale(Locale locale)
将此扫描仪的区域设置为指定的区域设置。
|
Scanner |
useRadix(int radix)
将此扫描仪的默认基数设置为指定的基数。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEachRemaining
public Scanner(InputStream source)
Scanner
。从流字节转换为字符使用基础平台的
default charset。
source
-输入流进行扫描
public Scanner(InputStream source, String charsetName)
Scanner
。从流字节转换为字符用指定的字符集。
source
-输入流进行扫描
charsetName
-编码类型用于转换成字符字节流进行扫描
IllegalArgumentException
-如果指定的字符集不存在
public Scanner(File source) throws FileNotFoundException
Scanner
。从文件字节转换为字符使用基础平台的
default charset。
source
-一个文件进行扫描
FileNotFoundException
源
public Scanner(File source, String charsetName) throws FileNotFoundException
Scanner
。从文件字节转换为字符用指定的字符集。
source
-一个文件进行扫描
charsetName
-编码类型用于转换的字节从文件读入字符进行扫描
FileNotFoundException
源
IllegalArgumentException
-如果指定的编码是没有发现
public Scanner(Path source) throws IOException
Scanner
。从文件字节转换为字符使用基础平台的
default charset。
source
-路径的文件进行扫描
IOException
如果I/O错误发生的开放源
public Scanner(Path source, String charsetName) throws IOException
Scanner
。从文件字节转换为字符用指定的字符集。
source
-路径的文件进行扫描
charsetName
-编码类型用于转换的字节从文件读入字符进行扫描
IOException
如果I/O错误发生的开放源
IllegalArgumentException
-如果指定的编码是没有发现
public Scanner(String source)
Scanner
。
source
-字符串扫描
public Scanner(ReadableByteChannel source)
Scanner
。从源字节转换为字符使用基础平台的
default charset。
source
-信道扫描
public Scanner(ReadableByteChannel source, String charsetName)
Scanner
。从源字节转换为字符用指定的字符集。
source
-信道扫描
charsetName
-编码类型用来将字节从通道进入字符进行扫描
IllegalArgumentException
-如果指定的字符集不存在
public void close()
如果这种扫描仪尚未关闭,那么其背后的readable也实现了Closeable
接口然后可读的close方法将被调用。如果此扫描仪已关闭,则调用此方法将不会有任何效果。
试图经过扫描仪已经关闭执行搜索操作将导致一个IllegalStateException
。
close
接口
Closeable
close
接口
AutoCloseable
public IOException ioException()
IOException
最后被这个
Scanner
潜在的
Readable
。此方法返回
null
如无例外的存在。
public Pattern delimiter()
Pattern
这
Scanner
目前使用匹配符。
public Scanner useDelimiter(Pattern pattern)
pattern
-分隔模式
public Scanner useDelimiter(String pattern)
String
模式。
这种形式的useDelimiter(pattern)方法调用的行为一样,调用useDelimiter(Pattern.compile(pattern))。
pattern
-指定分隔模式
public Locale locale()
扫描仪的位置影响到其默认原始的正则表达式匹配的许多元素;看到localized numbers以上。
public Scanner useLocale(Locale locale)
扫描仪的位置影响到其默认原始的正则表达式匹配的许多元素;看到localized numbers以上。
调用reset()
方法将扫描仪的现场的initial locale。
locale
-字符串指定要使用的区域设置
public int radix()
扫描仪的基数影响其默认号码的正则表达式匹配的元素;看到localized numbers以上。
public Scanner useRadix(int radix)
扫描仪的基数影响其默认号码的正则表达式匹配的元素;看到localized numbers以上。
如果基数小于或大于Character.MAX_RADIX
Character.MIN_RADIX
,然后IllegalArgumentException
抛出。
调用reset()
方法将扫描仪的基数为10
。
radix
-基数时使用的扫描数
IllegalArgumentException
如果基数超出范围
public MatchResult match()
IllegalStateException
如果没有比赛已经进行,如果最后一场比赛是不成功的。
对Scanner
各种next
methods使比赛结果如果他们完全不抛出异常。例如,返回一个int nextInt()
方法调用后,此方法返回一个对Integer正则表达式定义上面的搜索MatchResult
。同样的findInLine(java.lang.String)
,findWithinHorizon(java.lang.String, int)
,和skip(java.util.regex.Pattern)
方法如果他们成功匹配的可用。
IllegalStateException
-如果没有匹配的结果是可用的
public String toString()
这Scanner
返回的字符串表示形式。一个Scanner
的字符串表示形式包含可能对调试有用的信息。确切的格式是未指定的。
public boolean hasNext()
hasNext
接口
Iterator<String>
IllegalStateException
-如果这种扫描仪是封闭的
Iterator
public String next()
true
hasNext()
。
next
接口
Iterator<String>
NoSuchElementException
-如果没有更多的令牌是可用的
IllegalStateException
-如果这种扫描仪是封闭的
Iterator
public void remove()
Iterator
支持。
remove
接口
Iterator<String>
UnsupportedOperationException
。
Iterator
public boolean hasNext(String pattern)
这种形式的hasNext(pattern)方法调用的行为一样,调用hasNext(Pattern.compile(pattern))。
pattern
-指定模式扫描
IllegalStateException
-如果这种扫描仪是封闭的
public String next(String pattern)
这种形式的next(pattern)方法调用的行为一样,调用next(Pattern.compile(pattern))。
pattern
-指定模式扫描
NoSuchElementException
-如果没有这样的令牌是可用的
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNext(Pattern pattern)
pattern
-模式扫描
IllegalStateException
-如果这种扫描仪是封闭的
public String next(Pattern pattern)
true
hasNext(Pattern)
。如果匹配成功,扫描程序将在过去与模式匹配的输入上取得进展。
pattern
-模式扫描
NoSuchElementException
-如果没有更多的令牌是可用的
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextLine()
IllegalStateException
-如果这种扫描仪是封闭的
public String nextLine()
由于这种方法继续搜索通过输入寻找一个行分隔符,它可以缓冲所有的输入搜索线跳过如果没有行分隔符。
NoSuchElementException
-如果没有行被发现
IllegalStateException
-如果这种扫描仪是封闭的
public String findInLine(String pattern)
这种形式的findInLine(pattern)方法调用的行为一样,调用findInLine(Pattern.compile(pattern))。
pattern
-字符串指定要搜索的模式
IllegalStateException
-如果这种扫描仪是封闭的
public String findInLine(Pattern pattern)
null
返回和扫描仪的位置是不变的。此方法可以块等待与模式相匹配的输入。
由于该方法继续搜索通过输入寻找指定的模式,它可以缓冲所有的输入搜索所需的令牌,如果没有线分隔符。
pattern
-模式扫描
IllegalStateException
-如果这种扫描仪是封闭的
public String findWithinHorizon(String pattern, int horizon)
这种形式的findWithinHorizon(pattern)方法调用的行为一样,调用findWithinHorizon(Pattern.compile(pattern, horizon))。
pattern
-字符串指定要搜索的模式
horizon
-搜索地平线
IllegalStateException
-如果这种扫描仪是封闭的
IllegalArgumentException
如果地平线是消极的
public String findWithinHorizon(Pattern pattern, int horizon)
此方法搜索通过输入到指定的搜索视野,忽略分隔符。如果模式是发现扫描程序的进步,过去的输入匹配,并返回匹配模式的字符串。如果没有检测到这样的模式,则返回的空值和扫描仪的位置保持不变。此方法可以块等待与模式相匹配的输入。
扫描仪不会搜索超过horizon
代码点超越其目前的位置。请注意,一个匹配可能被截断的地平线,也就是说,一个任意的匹配结果可能是不同的,如果地平线已经更大。扫描仪将地平线是透明的,非锚固约束(见Matcher.useTransparentBounds(boolean)
和Matcher.useAnchoringBounds(boolean)
)。
如果地平线是0
,那么地平线是忽略这种方法继续搜索通过输入寻找指定的模式没有束缚。在这种情况下,它可以缓冲所有的输入搜索模式。
如果地平线是负的,然后抛出IllegalArgumentException。
pattern
-模式扫描
horizon
-搜索地平线
IllegalStateException
-如果这种扫描仪是封闭的
IllegalArgumentException
如果地平线是消极的
public Scanner skip(Pattern pattern)
如果一个匹配指定模式不在当前位置,然后输入没有被跳过,NoSuchElementException抛出。
由于这种方法的目的,以匹配指定的模式开始在扫描仪的当前位置,模式,可以匹配大量的输入(“*”,例如)可能会导致扫描仪缓冲大量的输入。
注意可以跳过一些没有用的模式,可以搭配什么,冒着NoSuchElementException
如sc.skip("[ \t]*")
。
pattern
-指定模式跳过
NoSuchElementException
-如果指定的模式没有被发现
IllegalStateException
-如果这种扫描仪是封闭的
public Scanner skip(String pattern)
这种形式的skip(pattern)方法调用的行为一样,调用skip(Pattern.compile(pattern))。
pattern
-指定模式跳过
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextBoolean()
IllegalStateException
-如果这种扫描仪是封闭的
public boolean nextBoolean()
InputMismatchException
如果下一个令牌不能转化为有效的布尔值。如果匹配成功,扫描程序将输入匹配的输入端。
InputMismatchException
如果下一个标记是不是一个有效的布尔值
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextByte()
nextByte()
方法在默认进制字节值返回true。扫描仪不预先输入任何输入。
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextByte(int radix)
nextByte()
方法指定进制字节值返回true。扫描仪不预先输入任何输入。
radix
-用于解释令牌作为一个字节值的基数
IllegalStateException
-如果这种扫描仪是封闭的
public byte nextByte()
这种形式的nextByte()方法调用的行为一样,调用nextByte(radix),哪里radix
是扫描仪的默认基数。
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public byte nextByte(int radix)
InputMismatchException
如果下一个令牌不能转化为有效的字节值如下。如果翻译是成功的,扫描仪的进步过去的输入匹配。
如果下一个令牌匹配正则表达式定义的Integer上面然后令牌转换成byte价值如果通过删除所有区域设置特定的前缀,组分隔符,和区域设置特定的后缀,然后映射到非ASCII数字ASCII数字通过Character.digit
,前面加上负号(-)如果区域设置特定的前缀和后缀为负目前,通过得到的字符串来Byte.parseByte
与指定的基数。
radix
-用于解释令牌作为一个字节值的基数
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextShort()
nextShort()
方法在默认基数短值返回true。扫描仪不预先输入任何输入。
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextShort(int radix)
nextShort()
方法在指定的基数短值返回true。扫描仪不预先输入任何输入。
radix
-用于解释令牌作为短值的基数
IllegalStateException
-如果这种扫描仪是封闭的
public short nextShort()
这种形式的nextShort()方法调用的行为一样,调用nextShort(radix),哪里radix
是扫描仪的默认基数。
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public short nextShort(int radix)
InputMismatchException
如果下一个令牌不能转化为有效的短值如下。如果翻译是成功的,扫描仪的进步过去的输入匹配。
如果下一个令牌匹配正则表达式定义的Integer上面然后令牌转换成short价值如果通过删除所有区域设置特定的前缀,组分隔符,和区域设置特定的后缀,然后映射到非ASCII数字ASCII数字通过Character.digit
,前面加上负号(-)如果区域设置特定的前缀和后缀为负目前,通过得到的字符串来Short.parseShort
与指定的基数。
radix
-用于解释令牌作为短值的基数
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextInt()
nextInt()
方法在默认为int值返回true。扫描仪不预先输入任何输入。
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextInt(int radix)
nextInt()
方法在指定的基数一个int值返回true。扫描仪不预先输入任何输入。
radix
-用于解释作为一个int值的基数
IllegalStateException
-如果这种扫描仪是封闭的
public int nextInt()
这种形式的nextInt()方法调用的行为一样,调用nextInt(radix),哪里radix
是扫描仪的默认基数。
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public int nextInt(int radix)
InputMismatchException
。如果翻译是成功的,扫描仪的进步过去的输入匹配。
如果下一个令牌匹配正则表达式定义的Integer上面然后令牌转换成int价值如果通过删除所有区域设置特定的前缀,组分隔符,和区域设置特定的后缀,然后映射到非ASCII数字ASCII数字通过Character.digit
,前面加上负号(-)如果区域设置特定的前缀和后缀为负目前,通过得到的字符串来Integer.parseInt
与指定的基数。
radix
-用于解释作为一个int值的基数
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextLong()
nextLong()
方法在默认的根长值返回true。扫描仪不预先输入任何输入。
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextLong(int radix)
nextLong()
方法在指定的基数长值返回true。扫描仪不预先输入任何输入。
radix
-用于解释作为长值的基数
IllegalStateException
-如果这种扫描仪是封闭的
public long nextLong()
这种形式的nextLong()方法调用的行为一样,调用nextLong(radix),哪里radix
是扫描仪的默认基数。
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public long nextLong(int radix)
InputMismatchException
。如果翻译是成功的,扫描仪的进步过去的输入匹配。
如果下一个令牌匹配正则表达式定义的Integer上面然后令牌转换成long价值如果通过删除所有区域设置特定的前缀,组分隔符,和区域设置特定的后缀,然后映射到非ASCII数字ASCII数字通过Character.digit
,前面加上负号(-)如果区域设置特定的前缀和后缀为负目前,通过得到的字符串来Long.parseLong
与指定的基数。
radix
-用于解释作为一个int值的基数
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextFloat()
nextFloat()
法float值返回true。扫描仪不预先输入任何输入。
IllegalStateException
-如果这种扫描仪是封闭的
public float nextFloat()
InputMismatchException
。如果翻译是成功的,扫描仪的进步过去的输入匹配。
如果下一个令牌匹配正则表达式定义的Float上面然后令牌转换成float价值如果通过删除所有区域设置特定的前缀,组分隔符,和区域设置特定的后缀,然后映射到非ASCII数字ASCII数字通过Character.digit
,前面加上负号(-)如果区域设置特定的前缀和后缀为负目前,通过得到的字符串来Float.parseFloat
。如果标记匹配定位南或无穷大的字符串,然后“楠”或“无限”是适当的传递给Float.parseFloat
。
InputMismatchException
如果下一个标记不匹配浮正则表达式,或超出范围
NoSuchElementException
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextDouble()
nextDouble()
法双值返回true。扫描仪不预先输入任何输入。
IllegalStateException
-如果这种扫描仪是封闭的
public double nextDouble()
InputMismatchException
如果下一个令牌不能转化为有效的双重价值。如果翻译是成功的,扫描仪的进步过去的输入匹配。
如果下一个令牌匹配正则表达式定义的Float上面然后令牌转换成double价值如果通过删除所有区域设置特定的前缀,组分隔符,和区域设置特定的后缀,然后映射到非ASCII数字ASCII数字通过Character.digit
,前面加上负号(-)如果区域设置特定的前缀和后缀为负目前,通过得到的字符串来Double.parseDouble
。如果标记匹配定位南或无穷大的字符串,然后“楠”或“无限”是通过适当的Double.parseDouble
。
InputMismatchException
如果下一个标记不匹配浮正则表达式,或超出范围
NoSuchElementException
-如果输入了
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextBigInteger()
BigInteger
使用
nextBigInteger()
方法在默认基数返回true。扫描仪不预先输入任何输入。
BigInteger
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextBigInteger(int radix)
BigInteger
使用
nextBigInteger()
方法在指定的基数返回true。扫描仪不预先输入任何输入。
radix
-用于解释标记为一个整数的基数
BigInteger
IllegalStateException
-如果这种扫描仪是封闭的
public BigInteger nextBigInteger()
BigInteger
。
这种形式的nextBigInteger()方法调用的行为一样,调用nextBigInteger(radix),哪里radix
是扫描仪的默认基数。
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
-如果输入了
IllegalStateException
-如果这种扫描仪是封闭的
public BigInteger nextBigInteger(int radix)
BigInteger
。
如果下一个令牌匹配正则表达式定义的Integer上面然后令牌转换成BigInteger价值如果通过删除所有组分隔符,非ASCII数字映射为ASCII数字通过Character.digit
,通过得到的字符串与指定进制BigInteger(String, int)
构造函数。
radix
-用于解释令牌的基数
InputMismatchException
如果下一个标记不匹配整数正则表达式,或超出范围
NoSuchElementException
-如果输入了
IllegalStateException
-如果这种扫描仪是封闭的
public boolean hasNextBigDecimal()
BigDecimal
使用
nextBigDecimal()
方法返回true。扫描仪不预先输入任何输入。
BigDecimal
IllegalStateException
-如果这种扫描仪是封闭的
public BigDecimal nextBigDecimal()
BigDecimal
。
如果下一个令牌匹配正则表达式定义的Decimal上面然后令牌转换成BigDecimal价值如果通过删除所有组分隔符,非ASCII数字映射为ASCII数字通过Character.digit
,通过得到的字符串的BigDecimal(String)
构造函数。
InputMismatchException
如果下一个标记不匹配十进制的正则表达式,或超出范围
NoSuchElementException
-如果输入了
IllegalStateException
-如果这种扫描仪是封闭的
public Scanner reset()
复位扫描仪丢弃所有的显式状态信息所useDelimiter(java.util.regex.Pattern)
,useLocale(java.util.Locale)
调用改变,或useRadix(int)
。
这种形式的scanner.reset()方法调用的行为一样,调用
scanner.useDelimiter("\\p{javaWhitespace}+") .useLocale(Locale.getDefault(Locale.Category.FORMAT)) .useRadix(10);
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.