
- Java.util 包類
- Java.util - 首頁
- Java.util - ArrayDeque
- Java.util - ArrayList
- Java.util - Arrays
- Java.util - BitSet
- Java.util - Calendar
- Java.util - Collections
- Java.util - Currency
- Java.util - Date
- Java.util - Dictionary
- Java.util - EnumMap
- Java.util - EnumSet
- Java.util - Formatter
- Java.util - GregorianCalendar
- Java.util - HashMap
- Java.util - HashSet
- Java.util - Hashtable
- Java.util - IdentityHashMap
- Java.util - LinkedHashMap
- Java.util - LinkedHashSet
- Java.util - LinkedList
- Java.util - ListResourceBundle
- Java.util - Locale
- Java.util - Observable
- Java.util - PriorityQueue
- Java.util - Properties
- Java.util - PropertyPermission
- Java.util - PropertyResourceBundle
- Java.util - Random
- Java.util - ResourceBundle
- Java.util - ResourceBundle.Control
- Java.util - Scanner
- Java.util - ServiceLoader
- Java.util - SimpleTimeZone
- Java.util - Stack
- Java.util - StringTokenizer
- Java.util - Timer
- Java.util - TimerTask
- Java.util - TimeZone
- Java.util - TreeMap
- Java.util - TreeSet
- Java.util - UUID
- Java.util - Vector
- Java.util - WeakHashMap
- Java.util 包其他
- Java.util - 介面
- Java.util - 異常
- Java.util - 列舉
- Java.util 有用資源
- Java.util - 有用資源
- Java.util - 討論
Java Scanner 類
介紹
Java Scanner 類是一個簡單的文字掃描器,可以使用正則表示式解析基本型別和字串。以下是關於 Scanner 的重要要點:
Scanner 使用分隔符模式將其輸入分解為標記,預設情況下匹配空格。
掃描操作可能會阻塞以等待輸入。
如果不進行外部同步,Scanner 對於多執行緒使用是不安全的。
類宣告
以下是 java.util.Scanner 類的宣告:
public final class Scanner extends Object implements Iterator<String>
類建構函式
序號 | 建構函式及描述 |
---|---|
1 | Scanner(File source) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的檔案中掃描生成值。 |
2 | Scanner(File source, String charsetName) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的檔案中掃描生成值。 |
3 | Scanner(File source, Charset charset) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的檔案中掃描生成值。 |
4 | Scanner(InputStream source) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的輸入流中掃描生成值。 |
5 | Scanner(InputStream source, String charsetName) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的輸入流中掃描生成值。 |
6 | Scanner(InputStream source, Charset charset) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的輸入流中掃描生成值。 |
7 | Scanner(Readable source) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的源中掃描生成值。 |
8 | Scanner(String source) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的源中掃描生成值。 |
9 | Scanner(ReadableByteChannel source) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的通道中掃描生成值。 |
10 | Scanner(ReadableByteChannel source, String charsetName) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的通道中掃描生成值。 |
11 | Scanner(ReadableByteChannel source, Charset charset) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的通道中掃描生成值。 |
12 | Scanner(Path source) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的檔案中掃描生成值。 |
13 | Scanner(Path source, String charsetName) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的檔案中掃描生成值。 |
14 | Scanner(Path source, Charset charset) 此建構函式建立一個新的 Scanner,該 Scanner 從指定的檔案中掃描生成值。 |
類方法
序號 | 方法及描述 |
---|---|
1 | void close()
此方法關閉此掃描器。 |
2 | Pattern delimiter()
此方法返回此 Scanner 當前用於匹配分隔符的 Pattern。 |
3 | Stream<MatchResult> findAll(String patString)
此方法返回與提供的模式字串匹配的匹配結果流。 |
4 | String findInLine(Pattern pattern)
此方法嘗試查詢指定模式的下一個匹配項,忽略分隔符。 |
5 | String findWithinHorizon(Pattern pattern, int horizon)
此方法嘗試查詢指定模式的下一個匹配項。 |
6 | boolean hasNext()
如果此掃描器的輸入中還有另一個標記,則此方法返回 true。 |
7 | boolean hasNextBigDecimal()
如果此掃描器的輸入中的下一個標記可以使用 nextBigDecimal() 方法解釋為 BigDecimal,則此方法返回 true。 |
8 | boolean hasNextBigInteger()
如果此掃描器的輸入中的下一個標記可以使用 nextBigInteger() 方法以預設基數解釋為 BigInteger,則此方法返回 true。 |
9 | boolean hasNextBoolean()
如果此掃描器的輸入中的下一個標記可以使用從字串“true|false”建立的不區分大小寫的模式解釋為布林值,則此方法返回 true。 |
10 | boolean hasNextByte()
如果此掃描器的輸入中的下一個標記可以使用 nextByte() 方法以預設基數解釋為位元組值,則此方法返回 true。 |
11 | boolean hasNextDouble()
如果此掃描器的輸入中的下一個標記可以使用 nextDouble() 方法解釋為雙精度值,則此方法返回 true。 |
12 | boolean hasNextFloat()
此方法返回 true,如果此掃描器的輸入中的下一個標記可以使用 nextFloat() 方法解釋為浮點值。 |
13 | boolean hasNextInt()
如果此掃描器的輸入中的下一個標記可以使用 nextInt() 方法以預設基數解釋為整數值,則此方法返回 true。 |
14 | boolean hasNextLine()
如果此掃描器的輸入中還有另一行,則此方法返回 true。 |
15 | boolean hasNextLong()
如果此掃描器的輸入中的下一個標記可以使用 nextLong() 方法以預設基數解釋為長整數值,則此方法返回 true。 |
16 | boolean hasNextShort()
如果此掃描器的輸入中的下一個標記可以使用 nextShort() 方法以預設基數解釋為短整數值,則此方法返回 true。 |
17 | IOException ioException()
此方法返回此 Scanner 的底層 Readable 最近丟擲的 IOException。 |
18 | Locale locale()
此方法返回此掃描器的區域設定。 |
19 | MatchResult match()
此方法返回此掃描器執行的最後一次掃描操作的匹配結果。 |
20 | String next()
此方法查詢並返回此掃描器的下一個完整標記。 |
21 | BigDecimal nextBigDecimal()
此方法將輸入的下一個標記掃描為 BigDecimal。 |
22 | BigInteger nextBigInteger()
此方法將輸入的下一個標記掃描為 BigInteger。 |
23 | boolean nextBoolean()
此方法將輸入的下一個標記掃描為布林值並返回該值。 |
24 | byte nextByte()
此方法將輸入的下一個標記掃描為位元組。 |
25 | double nextDouble()
此方法將輸入的下一個標記掃描為雙精度值。 |
26 | float nextFloat()
此方法將輸入的下一個標記掃描為浮點值。 |
27 | int nextInt()
此方法將輸入的下一個標記掃描為整數。 |
28 | String nextLine()
此方法將此掃描器推進到當前行的下一行,並返回跳過的輸入。 |
29 | long nextLong()
此方法將輸入的下一個標記掃描為長整數。 |
30 | short nextShort()
此方法將輸入的下一個標記掃描為短整數。 |
31 | int radix()
此方法返回此掃描器的預設基數。 |
32 | void remove()
此 Iterator 實現不支援刪除操作。 |
33 | Scanner reset()
此方法重置此掃描器。 |
34 | Scanner skip(Pattern pattern)
此方法跳過與指定模式匹配的輸入,忽略分隔符。 |
35 | Stream<String> tokens()
返回此掃描器中分隔符分隔的標記的流。 |
36 | String toString()
此方法返回此 Scanner 的字串表示形式。 |
37 | Scanner useDelimiter(Pattern pattern)
此方法將此掃描器的分隔符模式設定為指定的模式。 |
38 | Scanner useLocale(Locale locale)
此方法將此掃描器的區域設定設定為指定的區域設定。 |
39 | Scanner useRadix(int radix)
此方法將此掃描器的預設基數設定為指定的基數。 |
繼承的方法
此類繼承自以下類的方法:
- java.util.Object
使用 Scanner 類讀取控制檯行示例
以下示例演示瞭如何使用 Java Scanner nextLine() 從控制檯讀取一行以及如何使用 close() 方法關閉掃描器。我們使用給定字串建立了一個掃描器物件。然後,我們使用 nextLine() 方法列印了該字串,然後使用 close() 方法關閉了掃描器。
package com.tutorialspoint; import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { String s = "Hello World! 3 + 3.0 = 6"; // create a new scanner with the specified String Object Scanner scanner = new Scanner(s); // print the next line of the string System.out.println(scanner.nextLine()); // close the scanner System.out.println("Closing Scanner..."); scanner.close(); System.out.println("Scanner Closed."); } }
輸出
讓我們編譯並執行以上程式,這將產生以下結果:
Hello World! 3 + 3.0 = 6 Closing Scanner... Scanner Closed.