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.
廣告