W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.util.Scanner
public final class Scanner
extends Object
implements Iterator<String>, Closeable
一個(gè)簡單的文本掃描器,可以使用正則表達(dá)式解析原始類型和字符串。
Scanner 使用分隔符模式將其輸入分解為標(biāo)記,默認(rèn)情況下匹配空格。 然后可以使用各種 next 方法將生成的標(biāo)記轉(zhuǎn)換為不同類型的值。
例如,此代碼允許用戶從 System.in 中讀取一個(gè)數(shù)字:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
作為另一個(gè)示例,此代碼允許從文件 myNumbers 中的條目分配長類型:
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}
掃描儀還可以使用除空格以外的分隔符。 此示例從字符串中讀取多個(gè)項(xiàng)目:
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
使用此代碼可以生成相同的輸出,該代碼使用正則表達(dá)式一次解析所有四個(gè)標(biāo)記:
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();
掃描儀使用的默認(rèn)空白分隔符由 Character.isWhitespace 識別。 reset() 方法會將掃描儀的分隔符的值重置為默認(rèn)的空白分隔符,無論它之前是否已更改。
掃描操作可能會阻塞等待輸入。
next() 和 hasNext() 方法及其原始類型的伴隨方法(例如 nextInt() 和 hasNextInt())首先跳過與分隔符模式匹配的任何輸入,然后嘗試返回下一個(gè)標(biāo)記。 hasNext 和 next 方法都可能阻塞等待進(jìn)一步的輸入。 hasNext 方法是否阻塞與其關(guān)聯(lián)的 next 方法是否會阻塞沒有關(guān)系。
findInLine(java.lang.String)、findWithinHorizon(java.lang.String, int) 和 skip(java.util.regex.Pattern) 方法獨(dú)立于分隔符模式運(yùn)行。 這些方法將嘗試匹配指定的模式,而不考慮輸入中的分隔符,因此可以在分隔符不相關(guān)的特殊情況下使用。 這些方法可能會阻塞等待更多輸入。
當(dāng)掃描器拋出 InputMismatchException 時(shí),掃描器不會傳遞導(dǎo)致異常的令牌,以便可以通過其他方法檢索或跳過它。
根據(jù)分隔模式的類型,可能會返回空標(biāo)記。 例如,模式“\s+”將不返回空標(biāo)記,因?yàn)樗ヅ浞指舴亩鄠€(gè)實(shí)例。 定界模式“\s”可能會返回空標(biāo)記,因?yàn)樗淮沃粋鬟f一個(gè)空格。
掃描儀可以從任何實(shí)現(xiàn) Readable 接口的對象中讀取文本。 如果調(diào)用底層可讀的 Readable.read(java.nio.CharBuffer) 方法拋出 IOException 則掃描器假定已到達(dá)輸入的末尾。 底層可讀的最近拋出的 IOException 可以通過 ioException() 方法檢索。
當(dāng) Scanner 關(guān)閉時(shí),如果源實(shí)現(xiàn)了 Closeable 接口,它將關(guān)閉其輸入源。
如果沒有外部同步,掃描器對于多線程使用是不安全的。
除非另有說明,否則將 null 參數(shù)傳遞給 Scanner 的任何方法都會導(dǎo)致拋出 NullPointerException。
除非使用 useRadix(int) 方法設(shè)置了不同的基數(shù),否則掃描儀將默認(rèn)將數(shù)字解釋為十進(jìn)制。 reset() 方法會將掃描儀的基數(shù)的值重置為 10,無論它之前是否已更改。
本地化號碼
此類的一個(gè)實(shí)例能夠掃描標(biāo)準(zhǔn)格式以及掃描儀區(qū)域設(shè)置格式的數(shù)字。 掃描儀的初始語言環(huán)境是 Locale.getDefault(Locale.Category.FORMAT) 方法返回的值; 它可以通過 useLocale(java.util.Locale) 方法進(jìn)行更改。 reset() 方法會將掃描儀區(qū)域設(shè)置的值重置為初始區(qū)域設(shè)置,無論它之前是否已更改。
本地化格式是根據(jù)以下參數(shù)定義的,對于特定語言環(huán)境,這些參數(shù)取自該語言環(huán)境的 DecimalFormat 對象 df 及其和 DecimalFormatSymbols 對象 dfs。
LocalGroupSeparator
用于分隔數(shù)千組的字符,即 dfs.getGroupingSeparator()
LocalDecimalSeparator
用于小數(shù)點(diǎn)的字符,即 dfs.getDecimalSeparator()
LocalPositivePrefix
出現(xiàn)在正數(shù)之前的字符串(可能為空),即 df.getPositivePrefix()
LocalPositiveSuffix
出現(xiàn)在正數(shù)之后的字符串(可能為空),即 df.getPositiveSuffix()
LocalNegativePrefix
出現(xiàn)在負(fù)數(shù)之前的字符串(可能為空),即 df.getNegativePrefix()
LocalNegativeSuffix
出現(xiàn)在負(fù)數(shù)之后的字符串(可能為空),即 df.getNegativeSuffix()
LocalNaN
表示浮點(diǎn)值的非數(shù)字的字符串,即 dfs.getNaN()
LocalInfinity
表示浮點(diǎn)值無窮大的字符串,即 dfs.getInfinity()
Number syntax
可以由此類的實(shí)例解析為數(shù)字的字符串根據(jù)以下正則表達(dá)式語法指定,其中 Rmax 是所使用的基數(shù)中的最高數(shù)字(例如,Rmax 是基數(shù)為 10 的 9)。
非ASCII碼:
Character.isDigit(c) 為其返回 true 的非 ASCII 字符 c
非零位:
[1-Rmax] | 非ASCII數(shù)字
數(shù)字:
[0-Rmax] | 非ASCII數(shù)字
分組數(shù)字:
( Non0Digit Digit? Digit?
( LocalGroupSeparator Digit Digit Digit )+ )
數(shù)字:
( ( Digit+ ) | GroupedNumeral )
整數(shù):
( [-+]? ( Numeral ) )
| LocalPositivePrefix Numeral LocalPositiveSuffix
| LocalNegativePrefix Numeral LocalNegativeSuffix
十進(jìn)制數(shù)字:
數(shù)字
| Numeral LocalDecimalSeparator *Digit**
| LocalDecimalSeparator Digit+
指數(shù):
( [eE] [+-]? Digit+ )
十進(jìn)制:
( [-+]? DecimalNumeral Exponent? )
| LocalPositivePrefix DecimalNumeral LocalPositiveSuffix Exponent?
| LocalNegativePrefix DecimalNumeral LocalNegativeSuffix Exponent?
十六進(jìn)制浮點(diǎn)數(shù):
[-+]? 0xX*.[0-9a-fA-F]+ (pP?[0-9]+)?
非編號:
NaN | LocalNan | Infinity | LocalInfinity
簽名非號碼:
( [-+]? NonNumber )
| LocalPositivePrefix NonNumber LocalPositiveSuffix
| LocalNegativePrefix NonNumber LocalNegativeSuffix
浮點(diǎn)數(shù):
Decimal | HexFloat | SignedNonNumber
空格在上述正則表達(dá)式中并不重要
構(gòu)造函數(shù) | 描述 |
---|---|
Scanner(File source) | 構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定文件掃描的值。 |
Scanner(File source, String charsetName) | 構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定文件掃描的值。 |
Scanner(InputStream source) | 構(gòu)造一個(gè)新的 Scanner,它生成從指定輸入流掃描的值。 |
Scanner(InputStream source, String charsetName) | 構(gòu)造一個(gè)新的 Scanner,它生成從指定輸入流掃描的值。 |
Scanner(Readable source) | 構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定源掃描的值。 |
Scanner(String source) | 構(gòu)造一個(gè)新的 Scanner,它生成從指定字符串掃描的值。 |
Scanner(ReadableByteChannel source) | 構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定通道掃描的值。 |
Scanner(ReadableByteChannel source, String charsetName) | 構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定通道掃描的值。 |
Scanner(Path source) | 構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定文件掃描的值。 |
Scanner(Path source, String charsetName) | 構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定文件掃描的值。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | close() | 關(guān)閉此掃描儀。 |
Pattern | delimiter() | 返回此掃描器當(dāng)前用于匹配分隔符的模式。 |
String | findInLine(String pattern) | 嘗試查找從指定字符串構(gòu)造的模式的下一個(gè)匹配項(xiàng),忽略分隔符。 |
String | findInLine(Pattern pattern) | 嘗試查找指定模式忽略分隔符的下一個(gè)匹配項(xiàng)。 |
String | findWithinHorizon(String pattern, int horizon) | 嘗試查找從指定字符串構(gòu)造的模式的下一個(gè)匹配項(xiàng),忽略分隔符。 |
String | findWithinHorizon(Pattern pattern, int horizon) | 嘗試查找指定模式的下一個(gè)匹配項(xiàng)。 |
boolean | hasNext() | 如果此掃描器在其輸入中有另一個(gè)標(biāo)記,則返回 true。 |
boolean | hasNext(String pattern) | 如果下一個(gè)標(biāo)記與從指定字符串構(gòu)造的模式匹配,則返回 true。 |
boolean | hasNext(Pattern pattern) | 如果下一個(gè)完整的標(biāo)記與指定的模式匹配,則返回 true。 |
boolean | hasNextBigDecimal() | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextBigDecimal() 方法解釋為 BigDecimal,則返回 true。 |
boolean | hasNextBigInteger() | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextBigInteger() 方法解釋為默認(rèn)基數(shù)中的 BigInteger,則返回 true。 |
boolean | hasNextBigInteger(int radix) | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextBigInteger() 方法解釋為指定基數(shù)中的 BigInteger,則返回 true。 |
boolean | hasNextBoolean() | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用從字符串“true|false”創(chuàng)建的不區(qū)分大小寫的模式解釋為布爾值,則返回 true。 |
boolean | hasNextByte() | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextByte() 方法解釋為默認(rèn)基數(shù)中的字節(jié)值,則返回 true。 |
boolean | hasNextByte(int radix) | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextByte() 方法解釋為指定基數(shù)中的字節(jié)值,則返回 true。 |
boolean | hasNextDouble() | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextDouble() 方法解釋為雙精度值,則返回 true。 |
boolean | hasNextFloat() | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextFloat() 方法解釋為浮點(diǎn)值,則返回 true。 |
boolean | hasNextInt() | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextInt() 方法解釋為默認(rèn)基數(shù)中的 int 值,則返回 true。 |
boolean | hasNextInt(int radix) | 如果此掃描儀輸入中的下一個(gè)標(biāo)記可以使用 nextInt() 方法解釋為指定基數(shù)中的 int 值,則返回 true。 |
boolean | hasNextLine() | 如果此掃描儀的輸入中有另一行,則返回 true。 |
boolean | hasNextLong() | 如果此掃描儀輸入中的下一個(gè)標(biāo)記可以使用 nextLong() 方法解釋為默認(rèn)基數(shù)中的 long 值,則返回 true。 |
boolean | hasNextLong(int radix) | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextLong() 方法解釋為指定基數(shù)中的 long 值,則返回 true。 |
boolean | hasNextShort() | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextShort() 方法解釋為默認(rèn)基數(shù)中的短值,則返回 true。 |
boolean | hasNextShort(int radix) | 如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextShort() 方法解釋為指定基數(shù)中的短值,則返回 true。 |
IOException | ioException() | 返回此 Scanner 的底層 Readable 上次拋出的 IOException。 |
Locale | locale() | 返回此掃描儀的語言環(huán)境。 |
MatchResult | match() | 返回此掃描器執(zhí)行的最后一次掃描操作的匹配結(jié)果。 |
String | next() | 從此掃描器中查找并返回下一個(gè)完整的令牌。 |
String | next(String pattern) | 如果它與從指定字符串構(gòu)造的模式匹配,則返回下一個(gè)標(biāo)記。 |
String | next(Pattern pattern) | 如果它與指定的模式匹配,則返回下一個(gè)標(biāo)記。 |
BigDecimal | nextBigDecimal() | 將輸入的下一個(gè)標(biāo)記掃描為 BigDecimal。 |
BigInteger | nextBigInteger() | 將輸入的下一個(gè)標(biāo)記掃描為 BigInteger。 |
BigInteger | nextBigInteger(int radix) | 將輸入的下一個(gè)標(biāo)記掃描為 BigInteger。 |
boolean | nextBoolean() | 將輸入的下一個(gè)標(biāo)記掃描為布爾值并返回該值。 |
byte | nextByte() | 將輸入的下一個(gè)標(biāo)記掃描為一個(gè)字節(jié)。 |
byte | nextByte(int radix) | 將輸入的下一個(gè)標(biāo)記掃描為一個(gè)字節(jié)。 |
double | nextDouble() | 將輸入的下一個(gè)標(biāo)記掃描為雙精度。 |
float | nextFloat() | 將輸入的下一個(gè)標(biāo)記掃描為浮點(diǎn)數(shù)。 |
int | nextInt() | 將輸入的下一個(gè)標(biāo)記掃描為 int。 |
int | nextInt(int radix) | 將輸入的下一個(gè)標(biāo)記掃描為 int。 |
String | nextLine() | 將此掃描器前進(jìn)到當(dāng)前行并返回被跳過的輸入。 |
long | nextLong() | 將輸入的下一個(gè)標(biāo)記掃描為 long。 |
long | nextLong(int radix) | 將輸入的下一個(gè)標(biāo)記掃描為 long。 |
short | nextShort() | 將輸入的下一個(gè)標(biāo)記掃描為 short。 |
short | nextShort(int radix) | 將輸入的下一個(gè)標(biāo)記掃描為 short。 |
int | radix() | 返回此掃描儀的默認(rèn)基數(shù)。 |
void | remove() | Iterator 的此實(shí)現(xiàn)不支持刪除操作。 |
Scanner | reset() | 重置此掃描儀。 |
Scanner | skip(String pattern) | 跳過與從指定字符串構(gòu)造的模式匹配的輸入。 |
Scanner | skip(Pattern pattern) | 跳過與指定模式匹配的輸入,忽略分隔符。 |
String | toString() | 返回此 Scanner 的字符串表示形式。 |
Scanner | useDelimiter(String pattern) | 將此掃描儀的分隔模式設(shè)置為從指定字符串構(gòu)造的模式。 |
Scanner | useDelimiter(Pattern pattern) | 將此掃描儀的分隔模式設(shè)置為指定的模式。 |
Scanner | useLocale(Locale locale) | 將此掃描儀的語言環(huán)境設(shè)置為指定的語言環(huán)境。 |
Scanner | useRadix(int radix) | 將此掃描儀的默認(rèn)基數(shù)設(shè)置為指定的基數(shù)。 |
從接口 java.util.Iterator 繼承的方法 |
---|
forEachRemaining |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
public Scanner(Readable source)
構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定源掃描的值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 實(shí)現(xiàn) Readable 接口的字符源 |
public Scanner(InputStream source)
構(gòu)造一個(gè)新的 Scanner,它生成從指定輸入流掃描的值。 使用底層平臺的默認(rèn)字符集將流中的字節(jié)轉(zhuǎn)換為字符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的輸入流 |
public Scanner(InputStream source, String charsetName)
構(gòu)造一個(gè)新的 Scanner,它生成從指定輸入流掃描的值。 流中的字節(jié)使用指定的字符集轉(zhuǎn)換為字符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的輸入流 |
charsetName | 用于將流中的字節(jié)轉(zhuǎn)換為要掃描的字符的編碼類型 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果指定的字符集不存在 |
public Scanner(File source) throws FileNotFoundException
構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定文件掃描的值。 使用底層平臺的默認(rèn)字符集將文件中的字節(jié)轉(zhuǎn)換為字符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的文件 |
Throws:
Throw名稱 | Throw描述 |
---|---|
FileNotFoundException | 如果找不到 source |
public Scanner(File source, String charsetName) throws FileNotFoundException
構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定文件掃描的值。 使用指定的字符集將文件中的字節(jié)轉(zhuǎn)換為字符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的文件 |
charsetName | 用于將文件中的字節(jié)轉(zhuǎn)換為要掃描的字符的編碼類型 |
Throws:
Throw名稱 | Throw描述 |
---|---|
FileNotFoundException | 如果找不到 source |
IllegalArgumentException | 如果沒有找到指定的編碼 |
public Scanner(Path source) throws IOException
構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定文件掃描的值。 使用底層平臺的默認(rèn)字符集將文件中的字節(jié)轉(zhuǎn)換為字符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的文件的路徑 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤打開源代碼 |
public Scanner(Path source, String charsetName) throws IOException
構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定文件掃描的值。 使用指定的字符集將文件中的字節(jié)轉(zhuǎn)換為字符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的文件的路徑 |
charsetName | 用于將文件中的字節(jié)轉(zhuǎn)換為要掃描的字符的編碼類型 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤打開源代碼 |
IllegalArgumentException | 如果沒有找到指定的編碼 |
public Scanner(String source)
構(gòu)造一個(gè)新的 Scanner,它生成從指定字符串掃描的值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的字符串 |
public Scanner(ReadableByteChannel source)
構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定通道掃描的值。 使用底層平臺的默認(rèn)字符集將源中的字節(jié)轉(zhuǎn)換為字符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的頻道 |
public Scanner(ReadableByteChannel source, String charsetName)
構(gòu)造一個(gè)新的 Scanner,它產(chǎn)生從指定通道掃描的值。 使用指定的字符集將源中的字節(jié)轉(zhuǎn)換為字符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
source | 要掃描的頻道 |
charsetName | 用于將通道中的字節(jié)轉(zhuǎn)換為要掃描的字符的編碼類型 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果指定的字符集不存在 |
public void close()
關(guān)閉此掃描儀。
如果這個(gè)掃描器還沒有關(guān)閉,那么如果它的底層可讀也實(shí)現(xiàn)了 Closeable 接口,那么可讀的 close 方法將被調(diào)用。 如果此掃描儀已關(guān)閉,則調(diào)用此方法將無效。
在掃描程序關(guān)閉后嘗試執(zhí)行搜索操作將導(dǎo)致 IllegalStateException。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
public IOException ioException()
返回此 Scanner 的底層 Readable 上次拋出的 IOException。 如果不存在此類異常,則此方法返回 null。
返回:
此掃描儀可讀的最后一個(gè)異常
public Pattern delimiter()
返回此掃描器當(dāng)前用于匹配分隔符的模式。
返回:
此掃描儀的分隔模式。
public Scanner useDelimiter(Pattern pattern)
將此掃描儀的分隔模式設(shè)置為指定的模式。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 定界模式 |
返回:
這個(gè)掃描儀
public Scanner useDelimiter(String pattern)
將此掃描儀的分隔模式設(shè)置為從指定字符串構(gòu)造的模式。
調(diào)用useDelimiter(pattern) 形式的此方法的行為方式與調(diào)用useDelimiter(Pattern.compile(pattern)) 完全相同。
調(diào)用 reset() 方法會將掃描儀的分隔符設(shè)置為默認(rèn)值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 指定分隔模式的字符串 |
返回:
這個(gè)掃描儀
public Locale locale()
返回此掃描儀的語言環(huán)境。
掃描儀的語言環(huán)境會影響其默認(rèn)原始匹配正則表達(dá)式的許多元素。
返回:
此掃描儀的語言環(huán)境
public Scanner useLocale(Locale locale)
將此掃描儀的語言環(huán)境設(shè)置為指定的語言環(huán)境。
掃描儀的語言環(huán)境會影響其默認(rèn)原始匹配正則表達(dá)式的許多元素。
調(diào)用 reset() 方法會將掃描儀的語言環(huán)境設(shè)置為初始語言環(huán)境。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
locale | 指定要使用的語言環(huán)境的字符串 |
返回:
這個(gè)掃描儀
public int radix()
返回此掃描儀的默認(rèn)基數(shù)。
掃描儀的基數(shù)會影響其默認(rèn)數(shù)字匹配正則表達(dá)式的元素; 請參閱上面的本地化數(shù)字。
返回:
此掃描儀的默認(rèn)基數(shù)
public Scanner useRadix(int radix)
將此掃描儀的默認(rèn)基數(shù)設(shè)置為指定的基數(shù)。
掃描儀的基數(shù)會影響其默認(rèn)數(shù)字匹配正則表達(dá)式的元素。
如果基數(shù)小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX,則拋出 IllegalArgumentException。
調(diào)用 reset() 方法會將掃描儀的基數(shù)設(shè)置為 10。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 掃描數(shù)字時(shí)使用的基數(shù) |
返回:
這個(gè)掃描儀
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果基數(shù)超出范圍 |
public MatchResult match()
返回此掃描器執(zhí)行的最后一次掃描操作的匹配結(jié)果。 如果沒有執(zhí)行匹配,或者最后一次匹配不成功,則此方法拋出 IllegalStateException。
如果 Scanner 的各種 next 方法完成而沒有拋出異常,則可以使用匹配結(jié)果。 例如,在調(diào)用返回 int 的 nextInt() 方法后,此方法返回 MatchResult 以搜索上面定義的 Integer 正則表達(dá)式。 類似地,如果 findInLine(java.lang.String)、findWithinHorizon(java.lang.String, int) 和 skip(java.util.regex.Pattern) 方法成功,則匹配可用。
返回:
最后一次匹配操作的匹配結(jié)果
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果沒有匹配結(jié)果可用 |
public String toString()
返回此 Scanner 的字符串表示形式。 Scanner 的字符串表示形式包含可能對調(diào)試有用的信息。 確切的格式未指定。
覆蓋:
類 Object 中的 toString
返回:
此掃描儀的字符串表示形式
public boolean hasNext()
如果此掃描器在其輸入中有另一個(gè)標(biāo)記,則返回 true。 此方法可能會在等待輸入掃描時(shí)阻塞。 掃描儀不會超過任何輸入。
指定者:
接口 IteratorString 中的 hasNext
返回:
當(dāng)且僅當(dāng)此掃描儀有另一個(gè)令牌時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public String next()
從此掃描器中查找并返回下一個(gè)完整的令牌。 一個(gè)完整的標(biāo)記前后是匹配分隔符模式的輸入。 此方法可能會在等待輸入掃描時(shí)阻塞,即使先前調(diào)用 hasNext() 返回 true。
指定者:
接口 IteratorString 中的下一個(gè)
返回:
下一個(gè)令牌
Throws:
Throw名稱 | Throw描述 |
---|---|
NoSuchElementException | 如果沒有更多可用的令牌 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public void remove()
Iterator 的此實(shí)現(xiàn)不支持刪除操作。
指定者:
在接口 IteratorString 中移除
Throws:
Throw名稱 | Throw描述 |
---|---|
UnsupportedOperationException | 如果調(diào)用此方法。 |
public boolean hasNext(String pattern)
如果下一個(gè)標(biāo)記與從指定字符串構(gòu)造的模式匹配,則返回 true。 掃描儀不會超過任何輸入。
對這種形式為 hasNext(pattern) 的方法的調(diào)用與調(diào)用 hasNext(Pattern.compile(pattern)) 的行為方式完全相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 指定要掃描的模式的字符串 |
返回:
當(dāng)且僅當(dāng)此掃描器具有與指定模式匹配的另一個(gè)標(biāo)記時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public String next(String pattern)
如果它與從指定字符串構(gòu)造的模式匹配,則返回下一個(gè)標(biāo)記。 如果匹配成功,掃描器會前進(jìn)超過匹配模式的輸入。
調(diào)用 next(pattern) 形式的此方法的行為與調(diào)用 next(Pattern.compile(pattern)) 完全相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 指定要掃描的模式的字符串 |
返回:
下一個(gè)令牌
Throws:
Throw名稱 | Throw描述 |
---|---|
NoSuchElementException | 如果沒有此類令牌可用 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNext(Pattern pattern)
如果下一個(gè)完整的標(biāo)記與指定的模式匹配,則返回 true。 完整的標(biāo)記由匹配分隔符模式的輸入添加前綴和后綴。 此方法可能會在等待輸入時(shí)阻塞。 掃描儀不會超過任何輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 要掃描的模式 |
返回:
當(dāng)且僅當(dāng)此掃描器具有與指定模式匹配的另一個(gè)標(biāo)記時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public String next(Pattern pattern)
如果它與指定的模式匹配,則返回下一個(gè)標(biāo)記。 即使先前調(diào)用 hasNext(java.util.regex.Pattern) 返回 true,此方法也可能在等待輸入掃描時(shí)阻塞。 如果匹配成功,掃描器會前進(jìn)超過匹配模式的輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 要掃描的模式 |
返回:
下一個(gè)令牌
Throws:
Throw名稱 | Throw描述 |
---|---|
NoSuchElementException | 如果沒有更多可用的令牌 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextLine()
如果此掃描儀的輸入中有另一行,則返回 true。 此方法可能會在等待輸入時(shí)阻塞。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描儀有另一行輸入時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public String nextLine()
將此掃描器前進(jìn)到當(dāng)前行并返回被跳過的輸入。 此方法返回當(dāng)前行的其余部分,不包括末尾的任何行分隔符。 位置設(shè)置為下一行的開頭。
由于此方法繼續(xù)搜索輸入以查找行分隔符,因此如果不存在行分隔符,它可能會緩沖所有搜索要跳過的行的輸入。
返回:
被跳過的行
Throws:
Throw名稱 | Throw描述 |
---|---|
NoSuchElementException | 如果沒有找到 line |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public String findInLine(String pattern)
嘗試查找從指定字符串構(gòu)造的模式的下一個(gè)匹配項(xiàng),忽略分隔符。
對這種形式為 findInLine(pattern) 的方法的調(diào)用與調(diào)用 findInLine(Pattern.compile(pattern)) 的行為方式完全相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 指定要搜索的模式的字符串 |
返回:
與指定模式匹配的文本
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public String findInLine(Pattern pattern)
嘗試查找指定模式忽略分隔符的下一個(gè)匹配項(xiàng)。 如果在下一行分隔符之前找到該模式,則掃描程序會越過匹配的輸入并返回與該模式匹配的字符串。 如果在直到下一行分隔符的輸入中沒有檢測到這樣的模式,則返回 null 并且掃描儀的位置不變。 此方法可能會阻止等待與模式匹配的輸入。
由于此方法繼續(xù)搜索輸入以查找指定的模式,因此如果不存在行分隔符,它可能會緩沖所有輸入以搜索所需的標(biāo)記。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 要掃描的模式 |
返回:
與指定模式匹配的文本
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public String findWithinHorizon(String pattern, int horizon)
嘗試查找從指定字符串構(gòu)造的模式的下一個(gè)匹配項(xiàng),忽略分隔符。
對這種形式為 findWithinHorizon(pattern) 的方法的調(diào)用與調(diào)用 findWithinHorizon(Pattern.compile(pattern, horizon)) 的行為方式完全相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 指定要搜索的模式的字符串 |
horizon | 搜索范圍 |
返回:
與指定模式匹配的文本
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
IllegalArgumentException | 如果 horizon 為負(fù) |
public String findWithinHorizon(Pattern pattern, int horizon)
嘗試查找指定模式的下一個(gè)匹配項(xiàng)。
此方法搜索輸入直到指定的搜索范圍,忽略分隔符。如果找到模式,則掃描程序會越過匹配的輸入并返回與模式匹配的字符串。如果沒有檢測到這樣的模式,則返回 null 并且掃描儀的位置保持不變。此方法可能會阻止等待與模式匹配的輸入。
掃描器永遠(yuǎn)不會搜索超出其當(dāng)前位置的水平代碼點(diǎn)。請注意,匹配可能會被 horizon 剪裁;也就是說,如果視野更大,任意匹配結(jié)果可能會有所不同。掃描儀將 horizon 視為透明的非錨定邊界。
如果 horizon 為0,則 horizon 被忽略,并且此方法繼續(xù)搜索輸入以尋找指定的模式而不受限制。在這種情況下,它可能會緩沖所有搜索模式的輸入。
如果 Horizon 為負(fù)數(shù),則拋出 IllegalArgumentException。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 要掃描的模式 |
horizon | 搜索范圍 |
返回:
與指定模式匹配的文本
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
IllegalArgumentException | 如果 horizon 為負(fù) |
public Scanner skip(Pattern pattern)
跳過與指定模式匹配的輸入,忽略分隔符。 如果指定模式的錨定匹配成功,此方法將跳過輸入。
如果在當(dāng)前位置未找到與指定模式的匹配項(xiàng),則不跳過任何輸入并拋出 NoSuchElementException。
由于此方法試圖從掃描儀的當(dāng)前位置開始匹配指定的模式,因此可以匹配大量輸入(例如“.*”)的模式可能會導(dǎo)致掃描儀緩沖大量輸入。
請注意,通過使用不匹配任何內(nèi)容的模式(例如 sc.skip("[ \t]*")),可以跳過某些內(nèi)容而不會冒 NoSuchElementException 的風(fēng)險(xiǎn)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 一個(gè)字符串,指定要跳過的模式 |
返回:
這個(gè)掃描儀
Throws:
Throw名稱 | Throw描述 |
---|---|
NoSuchElementException | 如果沒有找到指定的模式 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public Scanner skip(String pattern)
跳過與從指定字符串構(gòu)造的模式匹配的輸入。
對這種形式為 skip(pattern) 的方法的調(diào)用與調(diào)用 skip(Pattern.compile(pattern)) 的行為方式完全相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pattern | 一個(gè)字符串,指定要跳過的模式 |
返回:
這個(gè)掃描儀
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextBoolean()
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用從字符串“true|false”創(chuàng)建的不區(qū)分大小寫的模式解釋為布爾值,則返回 true。 掃描儀不會超過匹配的輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是有效的布爾值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean nextBoolean()
將輸入的下一個(gè)標(biāo)記掃描為布爾值并返回該值。 如果下一個(gè)標(biāo)記無法轉(zhuǎn)換為有效的布爾值,此方法將拋出 InputMismatchException。 如果匹配成功,則掃描儀會超過匹配的輸入。
回報(bào):
從輸入掃描的布爾值
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記不是有效的布爾值 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextByte()
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextByte() 方法解釋為默認(rèn)基數(shù)中的字節(jié)值,則返回 true。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)令牌是有效字節(jié)值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextByte(int radix)
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextByte() 方法解釋為指定基數(shù)中的字節(jié)值,則返回 true。 掃描儀不會超過任何輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為字節(jié)值的基數(shù) |
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)令牌是有效字節(jié)值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public byte nextByte()
將輸入的下一個(gè)標(biāo)記掃描為一個(gè)字節(jié)。
調(diào)用 nextByte() 形式的此方法的行為與調(diào)用 nextByte(radix) 完全相同,其中 radix 是此掃描儀的默認(rèn)基數(shù)。
返回:
從輸入掃描的字節(jié)
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public byte nextByte(int radix)
將輸入的下一個(gè)標(biāo)記掃描為一個(gè)字節(jié)。 如果下一個(gè)標(biāo)記無法轉(zhuǎn)換為如下所述的有效字節(jié)值,則此方法將拋出 InputMismatchException。 如果翻譯成功,掃描儀會超過匹配的輸入。
如果下一個(gè)標(biāo)記與上面定義的整數(shù)正則表達(dá)式匹配,則該標(biāo)記被轉(zhuǎn)換為字節(jié)值,就像通過刪除所有區(qū)域設(shè)置特定的前綴、組分隔符和區(qū)域設(shè)置特定的后綴,然后通過 Character#digit 將非 ASCII 數(shù)字映射到 ASCII 數(shù)字 , 如果存在特定于語言環(huán)境的負(fù)前綴和后綴,則在前面加上負(fù)號 (-),并將結(jié)果字符串傳遞給具有指定基數(shù)的 Byte#parseByte(String, int)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為字節(jié)值的基數(shù) |
返回:
從輸入掃描的字節(jié)
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextShort()
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextShort() 方法解釋為默認(rèn)基數(shù)中的短值,則返回 true。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是默認(rèn)基數(shù)中的有效短值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextShort(int radix)
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextShort() 方法解釋為指定基數(shù)中的短值,則返回 true。 掃描儀不會超過任何輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為短值的基數(shù) |
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是指定基數(shù)中的有效短值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public short nextShort()
將輸入的下一個(gè)標(biāo)記掃描為短標(biāo)記。
調(diào)用 nextShort() 形式的此方法的行為方式與調(diào)用 nextShort(radix) 完全相同,其中 radix 是此掃描儀的默認(rèn)基數(shù)。
返回:
從輸入掃描的 short
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public short nextShort(int radix)
將輸入的下一個(gè)標(biāo)記掃描為短標(biāo)記。 如果下一個(gè)標(biāo)記無法轉(zhuǎn)換為有效的短值,則此方法將拋出 InputMismatchException,如下所述。 如果翻譯成功,掃描儀會超過匹配的輸入。
如果下一個(gè)標(biāo)記與上面定義的整數(shù)正則表達(dá)式匹配,則將標(biāo)記轉(zhuǎn)換為短值,就像通過刪除所有區(qū)域設(shè)置特定前綴、組分隔符和區(qū)域設(shè)置特定后綴,然后通過 Character#digit 將非 ASCII 數(shù)字映射為 ASCII 數(shù)字 , 如果存在特定于語言環(huán)境的負(fù)前綴和后綴,則在前面加上負(fù)號 (-),并將結(jié)果字符串傳遞給具有指定基數(shù)的 Short#parseShort(String, int)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為短值的基數(shù) |
返回:
從輸入掃描的 short
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextInt()
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextInt() 方法解釋為默認(rèn)基數(shù)中的 int 值,則返回 true。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是有效的 int 值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextInt(int radix)
如果此掃描儀輸入中的下一個(gè)標(biāo)記可以使用 nextInt() 方法解釋為指定基數(shù)中的 int 值,則返回 true。 掃描儀不會超過任何輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為 int 值的基數(shù) |
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是有效的 int 值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public int nextInt()
將輸入的下一個(gè)標(biāo)記掃描為 int。
調(diào)用 nextInt() 形式的此方法的行為方式與調(diào)用 nextInt(radix) 完全相同,其中 radix 是此掃描儀的默認(rèn)基數(shù)。
返回:
從輸入掃描的 int
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public int nextInt(int radix)
將輸入的下一個(gè)標(biāo)記掃描為 int。 如果下一個(gè)標(biāo)記無法轉(zhuǎn)換為有效的 int 值,則此方法將拋出 InputMismatchException,如下所述。 如果翻譯成功,掃描儀會超過匹配的輸入。
如果下一個(gè)標(biāo)記與上面定義的 Integer 正則表達(dá)式匹配,則將標(biāo)記轉(zhuǎn)換為 int 值,就像通過刪除所有區(qū)域設(shè)置特定前綴、組分隔符和區(qū)域設(shè)置特定后綴,然后通過 Character#digit 將非 ASCII 數(shù)字映射為 ASCII 數(shù)字 ,如果存在特定于語言環(huán)境的負(fù)前綴和后綴,則在前面加上負(fù)號 (-),并將結(jié)果字符串傳遞給具有指定基數(shù)的 Integer#parseInt(String, int)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為 int 值的基數(shù) |
返回:
從輸入掃描的 int
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextLong()
如果此掃描儀輸入中的下一個(gè)標(biāo)記可以使用 nextLong() 方法解釋為默認(rèn)基數(shù)中的 long 值,則返回 true。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是有效的長值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextLong(int radix)
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextLong() 方法解釋為指定基數(shù)中的 long 值,則返回 true。 掃描儀不會超過任何輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為長值的基數(shù) |
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是有效的長值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public long nextLong()
將輸入的下一個(gè)標(biāo)記掃描為 long。
調(diào)用 nextLong() 形式的此方法的行為方式與調(diào)用 nextLong(radix) 完全相同,其中 radix 是此掃描儀的默認(rèn)基數(shù)。
返回:
從輸入中掃描的 long
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public long nextLong(int radix)
將輸入的下一個(gè)標(biāo)記掃描為 long。 如果下一個(gè)標(biāo)記無法轉(zhuǎn)換為如下所述的有效長值,則此方法將拋出 InputMismatchException。 如果翻譯成功,掃描儀會超過匹配的輸入。
如果下一個(gè)標(biāo)記與上面定義的整數(shù)正則表達(dá)式匹配,則該標(biāo)記被轉(zhuǎn)換為長值,就像通過刪除所有區(qū)域設(shè)置特定前綴、組分隔符和區(qū)域設(shè)置特定后綴,然后通過 Character#digit 將非 ASCII 數(shù)字映射為 ASCII 數(shù)字 , 如果存在特定于語言環(huán)境的負(fù)前綴和后綴,則在前面加上負(fù)號 (-),并將結(jié)果字符串傳遞給具有指定基數(shù)的 Long#parseLong(String, int)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為 int 值的基數(shù) |
返回:
從輸入中掃描的 long
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextFloat()
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextFloat() 方法解釋為浮點(diǎn)值,則返回 true。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是有效的浮點(diǎn)值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public float nextFloat()
將輸入的下一個(gè)標(biāo)記掃描為浮點(diǎn)數(shù)。 如果下一個(gè)標(biāo)記無法轉(zhuǎn)換為如下所述的有效浮點(diǎn)值,則此方法將拋出 InputMismatchException。 如果翻譯成功,掃描儀會超過匹配的輸入。
如果下一個(gè)標(biāo)記與上面定義的 Float 正則表達(dá)式匹配,則將標(biāo)記轉(zhuǎn)換為浮點(diǎn)值,就像通過刪除所有區(qū)域設(shè)置特定前綴、組分隔符和區(qū)域設(shè)置特定后綴,然后通過 Character#digit 將非 ASCII 數(shù)字映射為 ASCII 數(shù)字 , 如果存在特定于語言環(huán)境的負(fù)前綴和后綴,則在前面加上負(fù)號 (-),并將結(jié)果字符串傳遞給 Float#parseFloat。 如果令牌與本地化的 NaN 或無窮大字符串匹配,則“Nan”或“Infinity”將酌情傳遞給 Float#parseFloat(String)。
返回:
從輸入掃描的浮點(diǎn)數(shù)
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與 Float 正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextDouble()
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextDouble() 方法解釋為雙精度值,則返回 true。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)標(biāo)記是有效的雙精度值時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public double nextDouble()
將輸入的下一個(gè)標(biāo)記掃描為雙精度。 如果下一個(gè)標(biāo)記無法轉(zhuǎn)換為有效的雙精度值,此方法將拋出 InputMismatchException。 如果翻譯成功,掃描儀會超過匹配的輸入。
如果下一個(gè)標(biāo)記與上面定義的 Float 正則表達(dá)式匹配,則將標(biāo)記轉(zhuǎn)換為雙精度值,就像通過刪除所有區(qū)域設(shè)置特定前綴、組分隔符和區(qū)域設(shè)置特定后綴,然后通過 Character#digit 將非 ASCII 數(shù)字映射為 ASCII 數(shù)字 , 如果存在特定于語言環(huán)境的負(fù)前綴和后綴,則在前面加上負(fù)號 (-),并將結(jié)果字符串傳遞給 Double#parseDouble。 如果令牌與本地化的 NaN 或無窮大字符串匹配,則“Nan”或“Infinity”將酌情傳遞給 Double#parseDouble(String)。
返回:
從輸入掃描的 double
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與 Float 正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextBigInteger()
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextBigInteger() 方法解釋為默認(rèn)基數(shù)中的 BigInteger,則返回 true。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)令牌是有效的 BigInteger 時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextBigInteger(int radix)
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextBigInteger() 方法解釋為指定基數(shù)中的 BigInteger,則返回 true。 掃描儀不會超過任何輸入。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于將標(biāo)記解釋為整數(shù)的基數(shù) |
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)令牌是有效的 BigInteger 時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public BigInteger nextBigInteger()
將輸入的下一個(gè)標(biāo)記掃描為 BigInteger。
調(diào)用 nextBigInteger() 形式的此方法的行為方式與調(diào)用 nextBigInteger(radix) 完全相同,其中 radix 是此掃描儀的默認(rèn)基數(shù)。
返回:
從輸入掃描的 BigInteger
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public BigInteger nextBigInteger(int radix)
將輸入的下一個(gè)標(biāo)記掃描為 BigInteger。
如果下一個(gè)標(biāo)記與上面定義的整數(shù)正則表達(dá)式匹配,則該標(biāo)記被轉(zhuǎn)換為 BigInteger 值,就好像通過刪除所有組分隔符,通過 Character#digit 將非 ASCII 數(shù)字映射為 ASCII 數(shù)字,并將生成的字符串傳遞給 BigInteger (String, int) 具有指定基數(shù)的構(gòu)造函數(shù)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
radix | 用于解釋標(biāo)記的基數(shù) |
返回:
從輸入掃描的 BigInteger
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與整數(shù)正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public boolean hasNextBigDecimal()
如果此掃描器輸入中的下一個(gè)標(biāo)記可以使用 nextBigDecimal() 方法解釋為 BigDecimal,則返回 true。 掃描儀不會超過任何輸入。
返回:
當(dāng)且僅當(dāng)此掃描器的下一個(gè)令牌是有效的 BigDecimal 時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public BigDecimal nextBigDecimal()
將輸入的下一個(gè)標(biāo)記掃描為 BigDecimal。
如果下一個(gè)標(biāo)記與上面定義的 Decimal 正則表達(dá)式匹配,則該標(biāo)記被轉(zhuǎn)換為 BigDecimal 值,就好像通過刪除所有組分隔符,通過 Character#digit 將非 ASCII 數(shù)字映射為 ASCII 數(shù)字,并將結(jié)果字符串傳遞給 BigDecimal (字符串)構(gòu)造函數(shù)。
返回:
從輸入掃描的 BigDecimal
Throws:
Throw名稱 | Throw描述 |
---|---|
InputMismatchException | 如果下一個(gè)標(biāo)記與 Decimal 正則表達(dá)式不匹配,或者超出范圍 |
NoSuchElementException | 如果 input 已用完 |
IllegalStateException | 如果此掃描儀已關(guān)閉 |
public Scanner reset()
重置此掃描儀。
重置掃描器會丟棄其所有顯式狀態(tài)信息,這些信息可能已被 useDelimiter(java.util.regex.Pattern)、useLocale(java.util.Locale) 或 useRadix(int) 調(diào)用更改。
形式為scanner.reset() 的此方法的調(diào)用與調(diào)用的行為方式完全相同
scanner.useDelimiter("\\p{javaWhitespace}+")
.useLocale(Locale.getDefault(Locale.Category.FORMAT))
.useRadix(10);
返回:
這個(gè)掃描儀
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: