java.util.Scanner findInLine(String pattern)

Description :

This java tutorial shows how to use the findInLine(String pattern) method of Scanner class of java.util package. This method returns a String object that satisfies the pattern specified as method argument.

Method Syntax :

public String findInLine(String pattern)

Parameter Input :

 

DataType Parameter Description
N/A N/A This method argument tells the Scanner on which Pattern object to search

 

Method Returns :

This method simply returns the string that satisfies the pattern specified on the method argument.

Compatibility Version :

Requires Java 1.5 and up

Exception :

IllegalStateException

– The IllegalStateException will be thrown by findInLine method of Scanner class if the invocation is done after the scanner has been closed.

Discussion :

The Scanner findInLine(String pattern) method is used to search for a pattern on the scanner buffer regardless of delimiters. This is the same as calling the method findInLine(Pattern.compile(pattern)).

Java Code Example :

This java example source code demonstrates the use of findInLine method of Scanner class. Basically this codes make use of hasNextLine() and nextLine() to move through the contents of the file line by line. And by using the findInLine() method, we have used used it to get only the contents which satisfies the pattern that we have specified.

package com.teknoscope.java.tutorial.scanner;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.regex.Pattern;

/*
 * Example java source code on the usage of findInLine(String pattern) method
 * of Scanner class to find a specific pattern on the scanner buffer
 */

public class ScannerFindInLine {

	public static void main(String[] args) throws FileNotFoundException {
		// Declare File object
		File file = new File("E:/tmp/java/tutorial/scanner/example.txt");
		// initialize the scanner
		Scanner scan = new Scanner(file);

		// iterate through the file line by line
		while(scan.hasNextLine()){
			// scan for names on the content of the file			
				String str = scan.findInLine("[A-Za-z].*[A-Za-z]");
				if(str != null){
					// print the string content that satisfies the pattern 
					// specified on the method argument
					System.out.println(str);
				}
			// advance to the next line
			scan.nextLine();
		}
		// close the scanner object;		
		scan.close();	

	}
}

File Contents:

****************
*albert einstein*
*william victor salvatore*
*alan cayetano*
****************

Sample Output :

Running the findInLine(String pattern) method example source code of Scanner class will give you the following output

java scanner findinline string pattern method example

java scanner findinline string pattern method example

Exception Scenario :

Exception in thread "main" java.lang.IllegalStateException: Scanner closed
	at java.util.Scanner.ensureOpen(Unknown Source)
	at java.util.Scanner.findInLine(Unknown Source)
	at com.teknoscope.java.tutorial.scanner.ScannerFindInLine.main(ScannerFindInLine.java:35)

Similar Method :

  • N/A

Suggested Reading List :

References :