Java Scanner class is found in found in the java.util package. Scanner class is used to getting the input of the primitive data types like Strings, int, double etc. It breaks the input using a pattern (regex), where the default regular expressions match is whitespace. This is the easiest way to get input in the java program.

This tutorial you will learn how to import a Scanner class in java, What are the use, How to use, important methods and many examples.
Java Scanner Syntax
A very easy syntax of Scanner class, after import java
1 2 |
Scanner sc = new Scanner(System.in); int i = sc.nextInt(); |
How to import Scanner Java
Java Import scanner class at the starting of the program inside the java file.
1 |
import java.util.Scanner; // Import the Scanner class |
Java Scanner Example
Let’s See the simple Java scanner string reader. Where the input type is string read from a console.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.Scanner; public class Hello { public static void main(String[] args) { // Creating a Scanner object Scanner scanObj = new Scanner(System.in); System.out.println("Enter your name"); // Read user input from console String input = scanObj.nextLine(); System.out.println("You Entered: " + input); // print user input } } |
Output: GIF with code structure. To use a scanner class in java, you have to import – import java

Input Types in scanner
Above example was used Java scanner nextLine() methods, which is using for get string input.
But Java scanner class support all primitive type inputs. Read the below list supported input list data type with scanner methods. This is also called Input types in scanner calss.
Data Type | Method | Description |
boolean | nextBoolean() | Read boolean value and returns that value. |
byte | nextByte() | Read the input as a byte. |
double | nextDouble() | Read input as a double. |
float | nextFloat() | Read the input as a |
int | nextInt() | Read the input as an int. |
String | nextLine() | Reads a String value from the user. |
long | nextLong() | Read the input as a long. |
short | nextShort() | Read input as a short. |
Example of different input types methods in Scanner class
Let’s see one by one method of Scanner class examples. We are not covering all types of methods, most are the same you can do it yourself. Every example has a code lines only other part like importing and mani methods
Scanner nextInt
A Method is used for reading next input as a int date type.
1 2 3 4 |
Scanner scanObj = new Scanner(System.in); System.out.println("Enter number"); int input = scanObj.nextInt(); System.out.println(" " + input); |
Scanner nextLine
Java Scanner nextLine method used for reading string input type.
1 2 3 4 5 |
Scanner myObj = new Scanner(System.in); System.out.println("Enter username"); String userName = myObj.nextLine(); System.out.println("Username is: " + userName); |
Java scanner nextDouble
A nextDouble method is used for racing a Double type data in java. Even you enter the int value in the
1 2 3 4 5 |
Scanner myObj = new Scanner(System.in); System.out.println("Enter a double value"); double value = myObj.nextDouble(); System.out.println("value is: " + value); |
Output: Enter a
0
value is: 0.0
Java scanner nextbyte
1 |
byte value = myObj.nextByte(); |
Scanner Class Exception
A scanner nextInt method will throw an error if you enter the string in a console. See the below example.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.util.Scanner; public class Hello { public static void main(String[] args) { Scanner myObj = new Scanner(System.in); System.out.println("Enter number only "); int value = myObj.nextInt(); System.out.println("value is: " + value); } } |
Note: Using a try-catch block can prevent – java scanner exception.
Output: See below GIF when you enter the number is fine but if string, it will throw an error – “java.util.InputMismatchException“

Other Important method and examples
A hasNext() and next() methods are useful, see examples.
hasNext() Method
The Scanner hasnext method Returns true if this scanner has another token in its input. Using this method you can stop a loop or any condition statement in program.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.Scanner; public class Hello { public static void main(String[] args) { String s = "Hello World !"; Scanner scanner = new Scanner(s); System.out.println("" + scanner.hasNext()); System.out.println("" + scanner.nextLine()); System.out.println("" + scanner.hasNext()); // close the scanner scanner.close(); } } |
Output:

next() Method
The Scanner next method finds and returns the next complete token from this scanner. A complete token is preceded and followed by input that matches the delimiter pattern.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.Scanner; public class Hello { public static void main(String[] args) { String s = "Hello World !"; Scanner scanner = new Scanner(s); System.out.println("" + scanner.next()); System.out.println("" + scanner.next()); scanner.close(); } } |
Output: Hello
World
How to Get Scanner next char?
Answer: Using Scanner.next() method you can take first or any character from the string.
1 2 3 |
Scanner scanner = new Scanner(s); char c = scanner.next().charAt(0); System.out.println(c); |
How to Reading a .txt file using Scanner class in Java?
Answer: Java scanner file
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.io.File; import java.util.Scanner; public class Hello { public static void main(String[] args) throws Exception { File file=new File("test.txt"); Scanner sc=new Scanner(file); while(sc.hasNextLine()){ System.out.println(sc.nextLine()); } } } |
This class introduced since Java version 1.6, so it’s most methods worked on the latest and old java version 8 etc. Do cooment if you have any doubt and suggestions.
Note: This example (Project) is developed in IntelliJ IDEA 2018.2.6 (Community Edition)
JRE: 11.0.1
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.1
Java version 11
All Java scanner class is in Java 11, so it may change on different from Java 9 or 10 or upgraded versions.