|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.Scanner
public final class Scanner
一個可以使用正則表達式來解析基本型別和字元串的簡單文本掃瞄器。
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
以下程式碼使用正則表達式同時解析所有的 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()
方法及其基本型別 companion 方法(如 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 的 Readable.read(java.nio.CharBuffer)
方法的調用拋出 IOException
,則掃瞄器認為已經到達了輸入的結尾。底層 readable 最新拋出的 IOException 可以通過 ioException()
方法獲取。
如果 Scanner
關閉,且其輸入源實作 Closeable
介面,則該輸入源也將關閉。
若沒有外部同步,則 Scanner
的多執行緒使用是不安全的。
除非另行說明,否則將一個 null
參數傳遞到 Scanner
的任何一個方法中都將拋出 NullPointerException
。
預設情況下掃瞄器會將數字解釋為十進制形式,除非已經使用 此類別的一個實例能夠以標準格式以及掃瞄器語言環境的格式掃瞄數字。掃瞄器的 初始語言環境 是 本地化格式是根據以下參數定義的,對於某一特定語言環境來說,這些參數取自該語言環境的 可通過此類別的一個實例解析為數字的字元串是根據以下正則表達式語法指定的,在這種情況下 Rmax 是正在使用的進制中的最高數字(例如,在進制 10 中 Rmax 為 9)。
useRadix(int)
方法設置了不同的進制。不管以前是否更改,reset()
方法將把掃瞄器的進制重置為10
。
本地化數字
Locale.getDefault()
方法返回的值;它可以通過 useLocale(java.util.Locale)
方法更改。不管以前是否更改,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()
數字語法
NonASCIIDigit :: | = 非 ASCII 字元 c,對於它,Character.isDigit (c) 返回 true | ||||
Non0Digit :: | = [1-Rmax] | NonASCIIDigit | ||||
Digit :: | = [0-Rmax] | NonASCIIDigit | ||||
GroupedNumeral :: |
| ||||
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 |
上面正則表達式中的空白沒有意義。
建構子摘要 | |
---|---|
Scanner(File source)
建構一個新的 Scanner ,它產生的值是從指定檔案掃瞄的。 |
|
Scanner(File source,
String charsetName)
建構一個新的 Scanner ,它產生的值是從指定檔案掃瞄的。 |
|
Scanner(InputStream source)
建構一個新的 Scanner ,它產生的值是從指定的輸入串流掃瞄的。 |
|
Scanner(InputStream source,
String charsetName)
建構一個新的 Scanner ,它產生的值是從指定的輸入串流掃瞄的。 |
|
Scanner(Readable source)
建構一個新的 Scanner ,它產生的值是從指定源掃瞄的。 |
|
Scanner(ReadableByteChannel source)
建構一個新的 Scanner ,它產生的值是從指定通道掃瞄的。 |
|
Scanner(ReadableByteChannel source,
String charsetName)
建構一個新的 Scanner ,它產生的值是從指定通道掃瞄的。 |
|
Scanner(String source)
建構一個新的 Scanner ,它產生的值是從指定字元串掃瞄的。 |
方法摘要 | |
---|---|
void |
close()
關閉此掃瞄器。 |
Pattern |
delimiter()
返回此 Scanner 當前正在用於比對分隔符的 Pattern 。 |
String |
findInLine(Pattern pattern)
試圖在忽略分隔符的情況下尋找下一個指定網要。 |
String |
findInLine(String pattern)
試圖在忽略分隔符的情況下尋找下一個從指定字元串建構的網要。 |
String |
findWithinHorizon(Pattern pattern,
int horizon)
試圖尋找下一個指定網要。 |
String |
findWithinHorizon(String pattern,
int horizon)
試圖在忽略分隔符的情況下尋找下一個從指定字元串建構的網要。 |
boolean |
hasNext()
如果此掃瞄器的輸入中有另一個標記,則返回 true。 |
boolean |
hasNext(Pattern pattern)
如果下一個完整標記與指定網要比對,則返回 true。 |
boolean |
hasNext(String pattern)
如果下一個標記與從指定字元串建構的網要比對,則返回 true。 |
boolean |
hasNextBigDecimal()
如果通過使用 nextBigDecimal() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 BigDecimal ,則返回 true。 |
boolean |
hasNextBigInteger()
如果通過使用 nextBigInteger() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 BigInteger 值,則返回 true。 |
boolean |
hasNextBigInteger(int radix)
如果通過使用 nextBigInteger() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為指定進制中的一個 BigInteger 值,則返回 true。 |
boolean |
hasNextBoolean()
如果通過使用一個從字元串 "true|false" 創建的大小寫敏感的網要,此掃瞄器輸入資訊中的下一個標記可以解釋為一個布林值,則返回 true。 |
boolean |
hasNextByte()
如果通過使用 nextByte() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個位元組值,則返回 true。 |
boolean |
hasNextByte(int radix)
如果通過使用 nextByte() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為指定進制中的一個位元組值,則返回 true。 |
boolean |
hasNextDouble()
如果通過使用 nextDouble() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 double 值,則返回 true。 |
boolean |
hasNextFloat()
如果通過使用 nextFloat() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 float 值,則返回 true。 |
boolean |
hasNextInt()
如果通過使用 nextInt() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 int 值,則返回 true。 |
boolean |
hasNextInt(int radix)
如果通過使用 nextInt() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為指定進制中的一個 int 值,則返回 true。 |
boolean |
hasNextLine()
如果在此掃瞄器的輸入中存在另一行,則返回 true。 |
boolean |
hasNextLong()
如果通過使用 nextLong() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 long 值,則返回 true。 |
boolean |
hasNextLong(int radix)
如果通過使用 nextLong() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為指定進制中的一個 long 值,則返回 true。 |
boolean |
hasNextShort()
如果通過使用 nextShort() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 short 值,則返回 true。 |
boolean |
hasNextShort(int radix)
如果通過使用 nextShort() 方法,此掃瞄器輸入資訊中的下一個標記可以解釋為指定進制中的一個 short 值,則返回 true。 |
IOException |
ioException()
返回此 Scanner 的底層 Readable 最後拋出的 IOException 。 |
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)
將此掃瞄器的預設進制設置為指定進制。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
public Scanner(Readable source)
Scanner
,它產生的值是從指定源掃瞄的。
source
- 實作 Readable
介面的字元源public Scanner(InputStream source)
Scanner
,它產生的值是從指定的輸入串流掃瞄的。取自該串流的位元組通過底層平臺的預設字元集轉換成字元。
source
- 要掃瞄的輸入串流public Scanner(InputStream source, String charsetName)
Scanner
,它產生的值是從指定的輸入串流掃瞄的。來自該串流的位元組通過指定字元集轉換成字元。
source
- 要掃瞄的輸入串流charsetName
- 用於將來自該串流的位元組轉換成要掃瞄的字元的編碼型別
IllegalArgumentException
- 如果指定字元集不存在public Scanner(File source) throws FileNotFoundException
Scanner
,它產生的值是從指定檔案掃瞄的。來自該檔案的位元組通過底層平臺的預設字元集轉換成字元。
source
- 要掃瞄的檔案
FileNotFoundException
- 如果源檔案未找到public Scanner(File source, String charsetName) throws FileNotFoundException
Scanner
,它產生的值是從指定檔案掃瞄的。來自該檔案的位元組通過指定字元集轉換成字元。
source
- 要掃瞄的檔案charsetName
- 用於將來自該檔案的位元組轉換成要掃瞄的字元的編碼型別
FileNotFoundException
- 如果源檔案未找到
IllegalArgumentException
- 如果指定的編碼未找到public Scanner(String source)
Scanner
,它產生的值是從指定字元串掃瞄的。
source
- 要掃瞄的字元串public Scanner(ReadableByteChannel source)
Scanner
,它產生的值是從指定通道掃瞄的。來自該源的位元組通過底層平臺的預設字元集轉換成字元。
source
- 要掃瞄的通道public Scanner(ReadableByteChannel source, String charsetName)
Scanner
,它產生的值是從指定通道掃瞄的。來自該源的位元組通過指定字元集轉換成字元。
source
- 要掃瞄的通道charsetName
- 用於將來自該通道的位元組轉換成要掃瞄的字元的編碼型別
IllegalArgumentException
- 如果指定字元集不存在方法詳細資訊 |
---|
public void close()
如果此掃瞄器尚未關閉,並且其底層 readable 也實作 Closeable
介面,則該 readable 的 close 方法將被調用。如果此掃瞄器已經關閉,則調用此方法無效。
在掃瞄器關閉後執行搜尋操作將導致 IllegalStateException
。
public IOException ioException()
Scanner
的底層 Readable
最後拋出的 IOException
。如果不存在這樣的異常,則此方法返回 null
。
public Pattern delimiter()
Scanner
當前正在用於比對分隔符的 Pattern
。
public Scanner useDelimiter(Pattern pattern)
pattern
- 分隔網要
public Scanner useDelimiter(String pattern)
String
建構的網要。
此方法調用 useDelimiter(pattern) 的行為與調用 useDelimiter(Pattern.compile(pattern)) 完全相同。
pattern
- 指定分隔網要的字元串
public Locale locale()
掃瞄器的語言環境會影響其與正則表達式比對的預設基元的許多元素;參見上面的本地化數字。
public Scanner useLocale(Locale locale)
掃瞄器的語言環境會影響其與正則表達式比對的預設基元的許多元素;參見上面的本地化數字。
調用 reset()
方法將把掃瞄器的語言環境設置為初始語言環境。
locale
- 指定要使用的語言環境的字元串
public int radix()
掃瞄器的進制會影響其與正則表達式比對的預設數的元素;參見上面的本地化數字。
public Scanner useRadix(int radix)
掃瞄器的進制會影響其與正則表達式比對的預設數的元素;參見上面的本地化數字。
如果該進制小於 Character.MIN_RADIX
或大於 Character.MAX_RADIX
,則拋出 IllegalArgumentException
。
調用 reset()
方法將把掃瞄器的進制設置為 10
。
radix
- 掃瞄數時要使用的進制
IllegalArgumentException
- 如果進制超出範圍public MatchResult match()
IllegalStateException
。
如果 Scanner
的不同 next
方法執行結束時未拋出異常,則它們會給出一個比對結果。例如,調用了 nextInt()
方法(它返回一個 int)後,此方法返回一個 MatchResult
,作為搜尋上述 Integer 正則表達式的結果。類似地,如果 findInLine(java.lang.String)
、findWithinHorizon(java.lang.String, int)
和 skip(java.util.regex.Pattern)
方法的調用成功,則它們會給出一個比對結果。
IllegalStateException
- 如果未給出比對結果public String toString()
返回此 Scanner
的字元串表示形式。Scanner
的字元串表示形式包含了對除錯可能有用的資訊。沒有指定確切格式。
Object
中的 toString
public boolean hasNext()
Iterator<String>
中的 hasNext
IllegalStateException
- 如果此掃瞄器已關閉Iterator
public String next()
hasNext()
返回了 true
,在等待要掃瞄的輸入時此方法也可能阻塞。
Iterator<String>
中的 next
NoSuchElementException
- 如果沒有更多標記可用
IllegalStateException
- 如果此掃瞄器已關閉Iterator
public void remove()
Iterator
的這種實作不支持移除操作。
Iterator<String>
中的 remove
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)
hasNext(Pattern)
返回了 true
,在等待要掃瞄的輸入時此方法也可能阻塞。如果此比對操作成功,則掃瞄器執行與該網要比對的輸入。
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
- 指定要搜尋的網要的字元串
IllegalStateException
- 如果此掃瞄器已關閉
IllegalArgumentException
- 如果 horizon 為負public String findWithinHorizon(Pattern pattern, int horizon)
此方法在忽略分隔符的情況下在指定的搜尋範圍內搜尋輸入資訊。如果找到了該網要,則掃瞄器執行比對的輸入資訊,並返回與該網要比對的字元串。如果未找到,則返回 null,且掃瞄器的位置不變。在等待與該網要比對的輸入資訊時,此方法可能阻塞。
掃瞄器的搜尋永遠都不超出其當前位置以外的 horizon
程式碼點。注意,比對可能被 horizon 剪裁;也就是說,如果 horizon 變大,則任意比對結果都可能不同。掃瞄器將 horizon 看作一個不固定的透明邊界(請參見 Matcher.useTransparentBounds(boolean)
和 Matcher.useAnchoringBounds(boolean)
)。
如果 horizon 為 0
,則忽略 horizon,此方法繼續在輸入資訊中尋找指定的網要,且不設邊界。在這種情況下,它可能會緩衝所有輸入資訊,並搜尋該網要。
如果 horizon 為負,則拋出 IllegalArgumentException。
pattern
- 要掃瞄的網要
IllegalStateException
- 如果此掃瞄器已關閉
IllegalArgumentException
- 如果 horizon 為負public Scanner skip(Pattern pattern)
如果在當前位置未找到指定網要,則不跳過任何輸入資訊,並拋出 NoSuchElementException。
由於此方法試圖從掃瞄器的當前位置比對指定網要,因此可與許多輸入資訊(例如 ".*")比對的網要可能會導致掃瞄器緩衝大量輸入資訊。
注意,通過使用沒有任何比對項的網要,例如,sc.skip("[ \t]*")
,跳過某些資訊同時不拋出 NoSuchElementException
是可能的。
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
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public byte nextByte(int radix)
InputMismatchException
,如下所述。如果此轉換成功,則掃瞄器執行比對的輸入。
如果下一個標記與上述的 Integer 正則表達式比對,則該標記轉換成一個 byte 值,就好像通過移除所有特定於語言環境的前綴、組分隔符和特定於語言環境的後綴,然後通過 Character.digit
將非 ASCII 數字映射為 ASCII 數字, 如果存在特定於語言環境的負前綴和後綴則預先掛起負號 (-),以及將得到的字元串傳遞給帶有指定進制的 Byte.parseByte
。
radix
- 用於將標記解釋為位元組值的進制
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextShort()
nextShort()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 short 值,則返回 true。掃瞄器不執行任何輸入。
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextShort(int radix)
nextShort()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為指定進制中的一個 short 值,則返回 true。掃瞄器不執行任何輸入。
radix
- 用於將標記解釋為一個 short 值的進制
IllegalStateException
- 如果此掃瞄器已關閉public short nextShort()
此方法調用 nextShort() 行為與調用 nextShort(radix) 完全相同,其中的 radix
是此掃瞄器的預設進制。
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public short nextShort(int radix)
InputMismatchException
,如下所述。如果此轉換成功,則掃瞄器執行比對的輸入。
如果下一個標記與上述的 Integer 正則表達式比對,則該標記轉換成一個 short 值,就好像通過移除所有特定於語言環境的前綴、組分隔符和特定於語言環境的後綴,然後通過 Character.digit
將非 ASCII 數字映射為 ASCII 數字, 如果存在特定於語言環境的負前綴和後綴則預先掛起負號 (-),然後將得到的字元串傳遞給帶有指定進制的 Short.parseShort
。
radix
- 用於將標記解釋為 short 值的進制
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
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
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public int nextInt(int radix)
InputMismatchException
,如下所述。如果此轉換成功,則掃瞄器執行比對的輸入。
如果下一個標記與上述的 Integer 正則表達式比對,則該標記轉換成一個 int 值,就好像通過移除所有特定於語言環境的前綴、組分隔符和特定於語言環境的後綴,然後通過 Character.digit
將非 ASCII 數字映射為 ASCII 數字, 如果存在特定於語言環境的負前綴和後綴則預先掛起負號 (-),然後將得到的字元串傳遞給帶有指定進制的 Integer.parseInt
。
radix
- 用於將標記解釋為 int 值的進制
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextLong()
nextLong()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 long 值,則返回 true。掃瞄器不執行任何輸入。
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextLong(int radix)
nextLong()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為指定進制中的一個 long 值,則返回 true。掃瞄器不執行任何輸入。
radix
- 用於將標記解釋為一個 long 值的進制
IllegalStateException
- 如果此掃瞄器已關閉public long nextLong()
此方法調用 nextLong() 的行為與調用 nextLong(radix) 完全相同,其中的 radix
是此掃瞄器的預設進制。
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public long nextLong(int radix)
InputMismatchException
,如下所述。如果此轉換成功,則掃瞄器執行比對的輸入。
如果下一個標記與上述的 Integer 正則表達式比對,則該標記轉換成一個 long 值,就好像通過移除所有特定於語言環境的前綴、組分隔符和特定於語言環境的後綴,然後通過 Character.digit
將非 ASCII 數字映射為 ASCII 數字, 如果存在特定於語言環境的負前綴和後綴則預先掛起負號 (-),以及將得到的字元串傳遞給帶有指定進制的 Long.parseLong
。
radix
- 用於將標記解釋為 long 值的進制
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextFloat()
nextFloat()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 float 值,則返回 true。掃瞄器不執行任何輸入。
IllegalStateException
- 如果此掃瞄器已關閉public float nextFloat()
InputMismatchException
,如下所述。如果此轉換成功,則掃瞄器執行比對的輸入。
如果下一個標記與上述的 Float 正則表達式比對,則該標記轉換成一個 float 值,就好像通過移除所有特定於語言環境的前綴、組分隔符和特定於語言環境的後綴,然後通過 Character.digit
將非 ASCII 數字映射為 ASCII 數字, 如果存在特定於語言環境的負前綴和後綴則預先掛起負號 (-),以及將得到的字元串傳遞給 Float.parseFloat
。如果標記與本地化的 NaN 或無窮大字元串比對,則將 "Nan" 或 "Infinity" 相應地傳遞給 Float.parseFloat
。
InputMismatchException
- 如果下一個標記與 float 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextDouble()
nextDouble()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 double 值,則返回 true。掃瞄器不執行任何輸入。
IllegalStateException
- 如果此掃瞄器已關閉public double nextDouble()
InputMismatchException
。如果此轉換成功,則掃瞄器執行比對的輸入。
如果下一個標記與上述的 Float 正則表達式比對,則該標記轉換成一個 double 值,就好像通過移除所有特定於語言環境的前綴、組分隔符和特定於語言環境的後綴,然後通過 Character.digit
將非 ASCII 數字映射為 ASCII 數字, 如果存在特定於語言環境的負前綴和後綴則預先掛起負號 (-),以及將得到的字元串傳遞給 Double.parseDouble
。如果標記與本地化的 NaN 或無窮大字元串比對,則將 "Nan" 或 "Infinity" 相應地傳遞給 Double.parseDouble
。
InputMismatchException
- 如果下一個標記與 float 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextBigInteger()
nextBigInteger()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 BigInteger
值,則返回 true。掃瞄器不執行任何輸入。
BigInteger
值時才返回 true
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextBigInteger(int radix)
nextBigInteger()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為指定進制中的一個 BigInteger
值,則返回 true。掃瞄器不執行任何輸入。
radix
- 用於將標記解釋為一個 integer 的進制
BigInteger
時才返回 true
IllegalStateException
- 如果此掃瞄器已關閉public BigInteger nextBigInteger()
BigInteger
。
此方法調用 nextBigInteger() 的行為與調用 nextBigInteger(radix) 完全相同,其中的 radix
是此掃瞄器的預設進制。
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public BigInteger nextBigInteger(int radix)
BigInteger
。
如果下一個標記與上述的 Integer 正則表達式比對,則該標記轉換成一個 BigInteger 值,就好像通過移除所有組分隔符,通過 Character.digit
將非 ASCII 數字映射為 ASCII 數字,以及將得到的字元串傳遞給帶有指定進制的 BigInteger(String, int)
建構子。
radix
- 用於解釋標記的進制
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不比對,或者超出範圍
NoSuchElementException
- 如果輸入資訊已耗盡
IllegalStateException
- 如果此掃瞄器已關閉public boolean hasNextBigDecimal()
nextBigDecimal()
方法,此掃瞄器輸入資訊中的下一個標記可以解釋為預設進制中的一個 BigDecimal
,則返回 true。掃瞄器不執行任何輸入。
BigDecimal
值時才返回 true
IllegalStateException
- 如果此掃瞄器已關閉public BigDecimal nextBigDecimal()
BigDecimal
。
如果下一個標記與上述的 Decimal 正則表達式比對,則該標記轉換成一個 BigDecimal 值,就好像通過移除所有組分隔符,通過 Character.digit
將非 ASCII 數字映射為 ASCII 數字,以及將得到的字元串傳遞給 BigDecimal(String)
建構子。
InputMismatchException
- 如果下一個標記與 Decimal 正則表達式不比對,或者超出範圍
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()) .useRadix(10);
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。