Java Scanner findAll() 方法



描述

Java Scanner findAll(Pattern pattern) 方法返回此掃描程式的匹配結果流。該流包含與連續呼叫 findWithinHorizon(pattern, 0) 然後 match() 返回的相同結果,順序也相同,只要 findWithinHorizon() 找到匹配項。生成的流是順序的且有序的。所有流元素都不為空。

宣告

以下是 java.util.Scanner.findAll() 方法的宣告

public Stream<MatchResult> findAll(Pattern pattern)

引數

pattern − 要匹配的模式

返回值

此方法返回匹配結果的順序流。

異常

NullPointerException − 如果 pattern 為 null

IllegalStateException − 如果此掃描程式已關閉

Java Scanner findInLine(String pattern) 方法

描述

java Scanner findAll(String pattern) 方法返回與提供的模式字串匹配的匹配結果流。

宣告

以下是 java.util.Scanner.findAll(String pattern) 方法的宣告

public Stream<MatchResult> findAll(String pattern)

引數

pattern − 指定要搜尋的模式的字串

返回值

此方法返回與指定模式匹配的文字。

異常

NullPointerException − 如果 patString 為 null

IllegalStateException − 如果此掃描程式已關閉

PatternSyntaxException − 如果正則表示式的語法無效

在字串上使用 Scanner 查詢多個模式示例

以下示例演示瞭如何使用 Java Scanner findAll(Pattern pattern) 方法獲取給定字串中模式的匹配結果流。我們使用給定的字串建立了一個掃描程式物件。我們使用 findAll(Pattern) 方法檢索了一個流。然後迭代流以列印結果。然後我們使用 scanner.nextLine() 方法列印了字串。

package com.tutorialspoint;

import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.regex.Pattern;
import java.util.stream.Stream;

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);

      Stream<MatchResult> stream = scanner.findAll(Pattern.compile(".ello"));
      
      stream.forEach(i -> System.out.println(i.group()));
      
      // print the next line of the string
      System.out.println(scanner.nextLine());

      // close the scanner
      scanner.close();
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Hello
 World! 3 + 3.0 = 6

在字串上使用 Scanner 查詢多個字串模式示例

以下示例演示瞭如何使用 Java Scanner findAll(String pattern) 方法獲取給定字串中模式的匹配結果流。我們使用給定的字串建立了一個掃描程式物件。我們使用 findAll(String) 方法檢索了一個流。然後迭代流以列印結果。然後我們使用 scanner.nextLine() 方法列印了字串。

package com.tutorialspoint;

import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.stream.Stream;

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);

      Stream<MatchResult> stream = scanner.findAll("World");
      
      stream.forEach(i -> System.out.println(i.group()));
      
      // print the next line of the string
      System.out.println(scanner.nextLine());

      // close the scanner
      scanner.close();
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

World
! 3 + 3.0 = 6

在使用者輸入上使用 Scanner 查詢多個模式示例

以下示例演示瞭如何使用 Java Scanner findAll(String pattern) 方法獲取給定字串中模式的匹配結果流。我們使用 System.in 類建立了一個掃描程式物件。我們使用 findAll(String) 方法檢索了一個流。然後迭代流以列印結果。然後我們使用 scanner.nextLine() 方法列印了字串。

package com.tutorialspoint;

import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.stream.Stream;

public class ScannerDemo {
   public static void main(String[] args) {

      // create a new scanner with the System input
      Scanner scanner = new Scanner(System.in);

      Stream<MatchResult> stream = scanner.findAll("World");
      
      stream.forEach(i -> System.out.println(i.group()));

      // close the scanner
      scanner.close();
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:(我們輸入了 Hello World 並按了回車鍵。)

Hello World
World
java_util_scanner.htm
廣告