Java Scanner findWithinHorizon() Method
Example
Find an email address in a line of text:
// Create a scanner object
Scanner myObj = new Scanner("Please send an email to info@example.com for more details.");
// Get the email address with a pattern
String email = myObj.findWithinHorizon("[a-zA-Z]+@[a-zA-Z]+.[a-zA-Z]{2,}", 0);
// Show the email if found
if (email != null) {
System.out.println(email);
} else {
System.out.println("No email found");
}
Definition and Usage
The findWithinHorizon() method searches through a specified number of characters for the first match of a regular expression provided by a Pattern object or a string. If a match is not found then it returns null.
The number of characters to search is specified by the horizon parameter, if it is set to zero then it continues searching without limit.
If a match is found the scanner advances to the first character following the match.
Learn more about the regular expressions in our Java RegEx tutorial.
Syntax
One of the following:
public String findWithinHorizon(Pattern pattern, int horizon)
public String findWithinHorizon(String pattern, int horizon)
Parameter Values
| Parameter | Description |
|---|---|
| pattern | Required. A string or Pattern object. Specifies the regular expression used in the search. |
| horizon | Required. Specifies a limit for how far ahead to search. If the value is zero then there is no limit. |
Technical Details
| Returns: | A String containing the matched text or null if no match was found. |
|---|---|
| Throws: |
IllegalStateException - If the scanner has been closed.IllegalArgumentException - If the horizon parameter is negative. |