Java Scanner findWithinHorizon() Method



Description

The Java Scanner findWithinHorizon(Pattern pattern,int horizon) method Attempts to find the next occurrence of the specified pattern. This method searches through the input up to the specified search horizon, ignoring delimiters. If the pattern is found the scanner advances past the input that matched and returns the string that matched the pattern. If no such pattern is detected then the null is returned and the scanner's position remains unchanged. This method may block waiting for input that matches the pattern. A scanner will never search more than horizon code points beyond its current position. Note that a match may be clipped by the horizon; that is, an arbitrary match result may have been different if the horizon had been larger.

Declaration

Following is the declaration for java.util.Scanner.findWithinHorizon(Pattern pattern,int horizon) method

public String findWithinHorizon(Pattern pattern,int horizon)

Parameters

pattern − a string specifying the pattern to search for

Return Value

This method returns the text that matched the specified pattern.

Exception

  • IllegalStateException − if this scanner is closed

  • IllegalArgumentException − if horizon is negative

Java Scanner findWithinHorizon(String pattern, int horizon) Method

Description

The Java Scanner findWithinHorizon(String pattern,int horizon) method attempts to find the next occurrence of a pattern constructed from the specified string, ignoring delimiters.An invocation of this method of the form findWithinHorizon(pattern) behaves in exactly the same way as the invocation findWithinHorizon(Pattern.compile(pattern, horizon)).

Declaration

Following is the declaration for java.util.Scanner.findWithinHorizon() method

public String findWithinHorizon(String pattern,int horizon)

Parameters

pattern − a string specifying the pattern to search for

Return Value

This method returns the text that matched the specified pattern.

Exception

  • IllegalStateException − if this scanner is closed

  • IllegalArgumentException − if horizon is negative

Finding Next Token with Help of a Pattern Using Scanner On a String Example

The following example shows the usage of Java Scanner findWithinHorizon(Pattern pattern, int horizon) method to find the next occurrence of pattern in a given string. We've created a scanner object using a given string. Then using findWithinHorizon(pattern, horizon) to search a string within horion of 10 and then a pattern is searched in horizon of 20. Then we've printed the rest of the string.

package com.tutorialspoint;

import java.util.Scanner;
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();
   }
}

Output

Let us compile and run the above program, this will produce the following result −

null
World
! 3 + 3.0 = 6

Finding Next Token with Help of a String pattern Using Scanner On a String Example

The following example shows the usage of Java Scanner findWithinHorizon(String pattern, int horizon) method to find the next occurrence of pattern in a given string. We've created a scanner object using a given string. Then using findWithinHorizon(pattern, horizon) to search a string within horion of 10 and then a pattern is searched in horizon of 20. Then we've printed the rest of the string.

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

      // find a string of world, with horizon of 10
      System.out.println(scanner.findWithinHorizon("World", 10));

      // find a string of world, with horizon of 20
      System.out.println(scanner.findWithinHorizon("World", 20));

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

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

Output

Let us compile and run the above program, this will produce the following result −

null
World
! 3 + 3.0 = 6

Finding Next Token with Help of a String Pattern Using Scanner On User Input Example

The following example shows the usage of Java Scanner findWithinHorizon(String pattern, int horizon) method to find the next occurrence of pattern in a given input. We've created a scanner object using System.in class. Then using findWithinHorizon(pattern, horizon) to search a string within horion of 10 and then a pattern is searched in horizon of 20.

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 System input
      Scanner scanner = new Scanner(System.in);

      // find a string of world, with horizon of 10
      System.out.println(scanner.findWithinHorizon("World", 10));

      // find a string of world, with horizon of 20
      System.out.println(scanner.findWithinHorizon("World", 20));

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

Output

Let us compile and run the above program, this will produce the following result − (where we've entered Hello World and pressed enter key.)

Hello World
null
World
java_util_scanner.htm
Advertisements