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
广告