Java.util.Scanner.findWithinHorizon() 方法

描述

java.util.Scanner.findWithinHorizon(Pattern pattern,int horizon) 方法尝试查找指定模式的下一个匹配项。此方法搜索输入直到指定的搜索范围,忽略分隔符。 如果找到模式,则扫描程序会越过匹配的输入并返回与模式匹配的字符串。 如果没有检测到这样的模式,则返回 null 并且扫描仪的位置保持不变。 此方法可能会阻止等待与模式匹配的输入。 扫描器永远不会搜索超出其当前位置的水平代码点。 请注意,匹配可能会被地平线剪裁; 也就是说,如果视野更大,任意匹配结果可能会有所不同。


声明

以下是 java.util.Scanner.findWithinHorizon() 方法的声明

public String findWithinHorizon(Pattern pattern,int horizon)

参数

pattern − 指定要搜索的模式的字符串


返回值

此方法返回与指定模式匹配的文本。


异常

  • IllegalStateException − 如果此扫描仪已关闭

  • IllegalArgumentException − 如果 horizon 是负数


示例

下面的例子展示了 java.util.Scanner.findWithinHorizon() 方法的使用。

package com.tutorialspoint;

import java.util.*;
import java.util.regex.Pattern;

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

      // find a pattern of 2 letters before rld, with horizon of 10
      System.out.println("" + scanner.findWithinHorizon(Pattern.compile("..rld"), 10));

      // find a pattern of 2 letters before rld, with horizon of 20
      System.out.println("" + scanner.findWithinHorizon(Pattern.compile("..rld"), 20));

      // print the rest of the string
      System.out.println("" + scanner.nextLine());

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

让我们编译并运行上面的程序,这将产生以下结果 −

null
World
! 3 + 3.0 = 6