Java Scanner class is found in java.util package. The 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.
In this tutorial you will learn how to import a Scanner class in java, What is the use, How to use it, important methods, and many examples.
Java Scanner Syntax
A very easy syntax of Scanner class, after import java
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.
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.
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 the scanner
Above example was used Java scanner nextLine() methods, which is using for get string input.
But Java scanner class supports all primitive type inputs. Read the below list supported input list data type with scanner methods. These are also called Input types in the scanner class.
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 code lines only other parts like importing and mani methods are the
Scanner nextInt
A Method is used for reading next input as a int date type.
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.
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 Double type data in java. Even you enter the int value in the
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
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.
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 the program.
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 the input that matches the delimiter pattern.
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.
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
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.