Java.util.Scanner.findWithinHorizo​​n()


描述

所述java.util.Scanner.findWithinHorizon(Pattern pattern,int horizon)方法试图通过输入查找指定pattern.This方法搜索下一次出现将在指定的搜索地平线,忽略分隔符。如果找到模式,则扫描仪前进超过匹配的输入并返回与模式匹配的字符串。如果未检测到此类模式,则返回null并且扫描仪的位置保持不变。此方法可能会阻止等待与模式匹配的输入。扫描仪永远不会搜索超出其当前位置的地平​​线代码点。请注意,匹配可能会被地平线限制; 也就是说,如果地平线更大,任意匹配结果可能会有所不同。

声明

以下是java.util.Scanner.findWithinHorizo​​n()方法的声明

public String findWithinHorizon(Pattern pattern,int horizon)

参数

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

返回值

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

异常

IllegalStateException - 如果此扫描程序已关闭

IllegalArgumentException - 如果horizo​​n是负数

实例

以下示例显示了java.util.Scanner.findWithinHorizo​​n()方法的用法。

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