Java Scanner Class



Introduction

The Java Scanner class is a simple text scanner which can parse primitive types and strings using regular expressions.Following are the important points about Scanner −

  • A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace.

  • A scanning operation may block waiting for input.

  • A Scanner is not safe for multithreaded use without external synchronization.

Class declaration

Following is the declaration for java.util.Scanner class −

public final class Scanner
   extends Object
   implements Iterator<String>

Class constructors

Sr.No. Constructor & Description
1

Scanner(File source)

This constructs a new Scanner that produces values scanned from the specified file.

2

Scanner(File source, String charsetName)

This constructs a new Scanner that produces values scanned from the specified file.

3

Scanner(File source, Charset charset)

This constructs a new Scanner that produces values scanned from the specified file.

4

Scanner(InputStream source)

This constructs a new Scanner that produces values scanned from the specified input stream.

5

Scanner(InputStream source, String charsetName)

This constructs a new Scanner that produces values scanned from the specified input stream.

6

Scanner(InputStream source, Charset charset)

This constructs a new Scanner that produces values scanned from the specified input stream.

7

Scanner(Readable source)

This constructs a new Scanner that produces values scanned from the specified source.

8

Scanner(String source)

This constructs a new Scanner that produces values scanned from the specified source.

9

Scanner(ReadableByteChannel source)

This constructs a new Scanner that produces values scanned from the specified channel.

10

Scanner(ReadableByteChannel source, String charsetName)

This constructs a new Scanner that produces values scanned from the specified channel.

11

Scanner(ReadableByteChannel source, Charset charset)

This constructs a new Scanner that produces values scanned from the specified channel.

12

Scanner(Path source)

This constructs a new Scanner that produces values scanned from the specified file.

13

Scanner(Path source, String charsetName)

This constructs a new Scanner that produces values scanned from the specified file.

14

Scanner(Path source, Charset charset)

This constructs a new Scanner that produces values scanned from the specified file.

Class methods

Sr.No. Method & Description
1 void close()

This method closes this scanner.

2 Pattern delimiter()

This method returns the Pattern this Scanner is currently using to match delimiters.

3 Stream<MatchResult> findAll​(String patString)

This method returns a stream of match results that match the provided pattern string.

4 String findInLine(Pattern pattern)

This method attempts to find the next occurrence of the specified pattern ignoring delimiters.

5 String findWithinHorizon(Pattern pattern, int horizon)

This method attempts to find the next occurrence of the specified pattern.

6 boolean hasNext()

This method returns true if this scanner has another token in its input.

7 boolean hasNextBigDecimal()

This method returns true if the next token in this scanner's input can be interpreted as a BigDecimal using the nextBigDecimal() method.

8 boolean hasNextBigInteger()

This method returns true if the next token in this scanner's input can be interpreted as a BigInteger in the default radix using the nextBigInteger() method.

9 boolean hasNextBoolean()

This method returns true if the next token in this scanner's input can be interpreted as a boolean value using a case insensitive pattern created from the string "true|false".

10 boolean hasNextByte()

This method returns true if the next token in this scanner's input can be interpreted as a byte value in the default radix using the nextByte() method.

11 boolean hasNextDouble()

This method returns true if the next token in this scanner's input can be interpreted as a double value using the nextDouble() method.

12 boolean hasNextFloat()

This method Returns true if the next token in this scanner's input can be interpreted as a float value using the nextFloat() method.

13 boolean hasNextInt()

This method returns true if the next token in this scanner's input can be interpreted as an int value in the default radix using the nextInt() method.

14 boolean hasNextLine()

This method returns true if there is another line in the input of this scanner.

15 boolean hasNextLong()

This method returns true if the next token in this scanner's input can be interpreted as a long value in the default radix using the nextLong() method.

16 boolean hasNextShort()

This method returns true if the next token in this scanner's input can be interpreted as a short value in the default radix using the nextShort() method.

17 IOException ioException()

This method returns the IOException last thrown by this Scanner's underlying Readable.

18 Locale locale()

This method returns this scanner's locale.

19 MatchResult match()

This method returns the match result of the last scanning operation performed by this scanner.

20 String next()

This method finds and returns the next complete token from this scanner.

21 BigDecimal nextBigDecimal()

This method scans the next token of the input as a BigDecimal.

22 BigInteger nextBigInteger()

This method Scans the next token of the input as a BigInteger.

23 boolean nextBoolean()

This method scans the next token of the input into a boolean value and returns that value.

24 byte nextByte()

This method scans the next token of the input as a byte.

25 double nextDouble()

This method scans the next token of the input as a double.

26 float nextFloat()

This method scans the next token of the input as a float.

27 int nextInt()

This method scans the next token of the input as an int.

28 String nextLine()

This method advances this scanner past the current line and returns the input that was skipped.

29 long nextLong()

This method scans the next token of the input as a long.

30 short nextShort()

This method scans the next token of the input as a short.

31 int radix()

This method returns this scanner's default radix.

32 void remove()

The remove operation is not supported by this implementation of Iterator.

33 Scanner reset()

This method resets this scanner.

34 Scanner skip(Pattern pattern)

This method skips input that matches the specified pattern, ignoring delimiters.

35 Stream<String> tokens()

Returns a stream of delimiter-separated tokens from this scanner.

36 String toString()

This method returns the string representation of this Scanner.

37 Scanner useDelimiter(Pattern pattern)

This method sets this scanner's delimiting pattern to the specified pattern.

38 Scanner useLocale(Locale locale)

This method sets this scanner's locale to the specified locale.

39 Scanner useRadix(int radix)

This method Sets this scanner's default radix to the specified radix.

Methods inherited

This class inherits methods from the following classes −

  • java.util.Object

Reading a Line from Console using Scanner Class Example

The following example shows the usage of Java Scanner nextLine() to read a line from Console and close() method to close the scanner. We've created a scanner object using a given string. Then we printed the string using nextLine() method 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);

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

      // close the scanner
      System.out.println("Closing Scanner...");
      scanner.close();
      System.out.println("Scanner Closed.");
   }
}

Output

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

Hello World! 3 + 3.0 = 6
Closing Scanner...
Scanner Closed.
Advertisements