Java Scanner hasNext() Method



Description

The java Scanner hasNext() method returns true if this scanner has another token in its input. This method may block while waiting for input to scan. The scanner does not advance past any input.

Declaration

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

public boolean hasNext()

Parameters

NA

Return Value

This method returns true if and only if this scanner has another token

Exception

IllegalStateException − if this scanner is closed

Java Scanner hasNext(Pattern pattern) Method

Description

The java.util.Scanner.hasNext(Pattern pattern) method returns true if the next complete token matches the specified pattern. A complete token is prefixed and postfixed by input that matches the delimiter pattern. This method may block while waiting for input. The scanner does not advance past any input.

Declaration

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

public boolean hasNext(Pattern pattern)

Parameters

pattern − the pattern to scan for

Return Value

This method returns true if and only if this scanner has another token matching the specified pattern

Exception

IllegalStateException − if this scanner is closed

Java Scanner hasNext(String pattern) Method

Description

The java.util.Scanner.hasNext(String pattern) method returns true if the next token matches the pattern constructed from the specified string. The scanner does not advance past any input. An invocation of this method of the form hasNext(pattern) behaves in exactly the same way as the invocation hasNext(Pattern.compile(pattern)).

Declaration

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

public boolean hasNext(String pattern)

Parameters

pattern − a string specifying the pattern to scan

Return Value

This method returns true if and only if this scanner has another token matching the specified pattern

Exception

IllegalStateException − if this scanner is closed

Checking Next Token if Available or Not Using Scanner On a String Example

The following example shows the usage of Java Scanner hasNext() method to check if next token is available to read or not. We've created a scanner object using a given string. Then we checked the token using hasNext() method and then we've printed the string using nextLine() method. Now hasNext() is used to check if more token is present and then scanner is closed using close() method.

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

      // check if the scanner has a token
      System.out.println("" + scanner.hasNext());

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

      // check if the scanner has a token after printing the line
      System.out.println("" + scanner.hasNext());

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

Output

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

true
Hello World! 3 + 3.0 = 6
false

Checking Next Token if Available or Not Using Pattern Example

The following example shows the usage of Java Scanner hasNext(Pattern pattern) method to check if next token matching a given pattern is available to read or not. We've created a scanner object using a given string. Then we checked the token using hasNext(pattern) method and then we've printed the string using nextLine() method. Now hasNext(pattern) is used to check if more token is present and then scanner is closed using close() method.

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

      // check if the scanner's next token matches "rld" following 2 chars
      System.out.println("" + scanner.hasNext(Pattern.compile("..rld")));

      // check if the scanner's next token matches "llo" following 2 chars
      System.out.println("" + scanner.hasNext(Pattern.compile("..llo")));

      // 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 −

false
true
Hello World! 3 + 3.0 = 6

Checking Next Token if Available or Not Using String as a Pattern On a String Example

The following example shows the usage of Java Scanner hasNext(String pattern) method to check if next token matching a given pattern is available to read or not. We've created a scanner object using a given string. Then we checked the token using hasNext(pattern) method and then we've printed the string using nextLine() method. Now hasNext(pattern) is used to check if more token is present and then scanner is closed using close() method.

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

      // check if the scanner's next token matches "World"
      System.out.println("" + scanner.hasNext("World"));

      // check if the scanner's next token matches "Hello"
      System.out.println("" + scanner.hasNext("Hello"));

      // 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 −

false
true
Hello World! 3 + 3.0 = 6
java_util_scanner.htm
Advertisements