Java Scanner Class

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 7

Java Scanner Class

Java Scanner class comes under the java.util package. Java has various ways to read input from
the keyboard, the java.util.Scanner class is one of them.

The Java Scanner class breaks the input into tokens using a delimiter that is whitespace by
default. It provides many methods to read and parse various primitive values.

Java Scanner class is widely used to parse text for string and primitive types using a regular
expression.

Java Scanner class extends Object class and implements Iterator and Closeable interfaces.

Java Scanner Class Declaration


1. public final class Scanner
2. extends Object
3. implements Iterator<String>

Java Scanner Class Constructors

SN Constructor Description
1) Scanner(File source) It constructs a new Scanner that produces
values scanned from the specified file.
2) Scanner(File source, String charsetName) It constructs a new Scanner that produces
values scanned from the specified file.
3) Scanner(InputStream source) It constructs a new Scanner that produces
values scanned from the specified input
stream.
4) Scanner(InputStream source, String It constructs a new Scanner that produces
charsetName) values scanned from the specified input
stream.
5) Scanner(Readable source) It constructs a new Scanner that produces
values scanned from the specified source.
6) Scanner(String source) It constructs a new Scanner that produces
values scanned from the specified string.
7) Scanner(ReadableByteChannel source) It constructs a new Scanner that produces
values scanned from the specified channel.
8) Scanner(ReadableByteChannel source, It constructs a new Scanner that produces
String charsetName) values scanned from the specified channel.
9) Scanner(Path source) It constructs a new Scanner that produces
values scanned from the specified file.
10) Scanner(Path source, String charsetName) It constructs a new Scanner that produces
values scanned from the specified file.
Java Scanner Class Methods
The following are the list of Scanner methods:

SN Modifier & Type Method Description


1) void close() It is used to close this scanner.
2) pattern delimiter() It is used to get the Pattern which the
Scanner class is currently using to match
delimiters.
3) Stream<MatchResult> findAll() It is used to find a stream of match results
that match the provided pattern string.
4) String findInLine() It is used to find the next occurrence of a
pattern constructed from the specified
string, ignoring delimiters.
5) string findWithinHorizon() It is used to find the next occurrence of a
pattern constructed from the specified
string, ignoring delimiters.
6) boolean hasNext() It returns true if this scanner has another
token in its input.
7) boolean hasNextBigDecimal() It is used to check if the next token in this
scanner's input can be interpreted as a
BigDecimal using the nextBigDecimal()
method or not.
8) boolean hasNextBigInteger() It is used to check if the next token in this
scanner's input can be interpreted as a
BigDecimal using the nextBigDecimal()
method or not.
9) boolean hasNextBoolean() It is used to check if the next token in this
scanner's input can be interpreted as a
Boolean using the nextBoolean() method
or not.
10) boolean hasNextByte() It is used to check if the next token in this
scanner's input can be interpreted as a
Byte using the nextBigDecimal() method
or not.
11) boolean hasNextDouble() It is used to check if the next token in this
scanner's input can be interpreted as a
BigDecimal using the nextByte() method
or not.
12) boolean hasNextFloat() It is used to check if the next token in this
scanner's input can be interpreted as a
Float using the nextFloat() method or not.
13) boolean hasNextInt() It is used to check if the next token in this
scanner's input can be interpreted as an int
using the nextInt() method or not.
14) boolean hasNextLine() It is used to check if there is another line
in the input of this scanner or not.
15) boolean hasNextLong() It is used to check if the next token in this
scanner's input can be interpreted as a
Long using the nextLong() method or not.
16) boolean hasNextShort() It is used to check if the next token in this
scanner's input can be interpreted as a
Short using the nextShort() method or not.
17) IOException ioException() It is used to get the IOException last
thrown by this Scanner's readable.
18) Locale locale() It is used to get a Locale of the Scanner
class.
19) MatchResult match() It is used to get the match result of the last
scanning operation performed by this
scanner.
20) String next() It is used to get the next complete token
from the scanner which is in use.
21) BigDecimal nextBigDecimal() It scans the next token of the input as a
BigDecimal.
22) BigInteger nextBigInteger() It scans the next token of the input as a
BigInteger.
23) boolean nextBoolean() It scans the next token of the input into a
boolean value and returns that value.
24) byte nextByte() It scans the next token of the input as a
byte.
25) double nextDouble() It scans the next token of the input as a
double.
26) float nextFloat() It scans the next token of the input as a
float.
27) int nextInt() It scans the next token of the input as an
Int.
28) String nextLine() It is used to get the input string that was
skipped of the Scanner object.
29) long nextLong() It scans the next token of the input as a
long.
30) short nextShort() It scans the next token of the input as a
short.
31) int radix() It is used to get the default radix of the
Scanner use.
32) void remove() It is used when remove operation is not
supported by this implementation of
Iterator.
33) Scanner reset() It is used to reset the Scanner which is in
use.
34) Scanner skip() It skips input that matches the specified
pattern, ignoring delimiters
35) Stream<String> tokens() It is used to get a stream of delimiter-
separated tokens from the Scanner object
which is in use.
36) String toString() It is used to get the string representation of
Scanner using.
37) Scanner useDelimiter() It is used to set the delimiting pattern of
the Scanner which is in use to the
specified pattern.
38) Scanner useLocale() It is used to sets this scanner's locale
object to the specified locale.
39) Scanner useRadix() It is used to set the default radix of the
Scanner which is in use to the specified
radix.

Example 1
1. import java.util.*;
2. public class ScannerClassExample1 {
3. public static void main(String args[]){
4. String s = "Hello, This is JavaTpoint.";
5. //Create scanner Object and pass string in it
6. Scanner scan = new Scanner(s);
7. //Check if the scanner has a token
8. System.out.println("Boolean Result: " + scan.hasNext());
9. //Print the string
10. System.out.println("String: " +scan.nextLine());
11. scan.close();
12. System.out.println("--------Enter Your Details-------- ");
13. Scanner in = new Scanner(System.in);
14. System.out.print("Enter your name: ");
15. String name = in.next();
16. System.out.println("Name: " + name);
17. System.out.print("Enter your age: ");
18. int i = in.nextInt();
19. System.out.println("Age: " + i);
20. System.out.print("Enter your salary: ");
21. double d = in.nextDouble();
22. System.out.println("Salary: " + d);
23. in.close();
24. }
25. }

Scanner Class in Java


Scanner is a class in java.util package used for obtaining the input of the primitive types like int,
double etc. and strings. It is the easiest way to read input in a Java program, though not very
efficient if you want an input method for scenarios where time is a constraint like in competitive
programming.

 To create an object of Scanner class, we usually pass the predefined object System.in,
which represents the standard input stream. We may pass an object of class File if we
want to read input from a file.
 To read numerical values of a certain data type XYZ, the function to use is nextXYZ().
For example, to read a value of type short, we can use nextShort()
 To read strings, we use nextLine().
 To read a single character, we use next().charAt(0). next() function returns the next
token/word in the input as a string and charAt(0) funtion returns the first character in that
string.
 import java.util.Scanner;
 public class ScannerDemo1
 {
 public static void main(String[] args)
 {
 // Declare the object and initialize with
 // predefined standard input object
 Scanner sc = new Scanner(System.in);

 // String input
 String name = sc.nextLine();

 // Character input
 char gender = sc.next().charAt(0);

 // Numerical data input
 // byte, short and float can be read
 // using similar-named functions.
 int age = sc.nextInt();
 long mobileNo = sc.nextLong();
 double cgpa = sc.nextDouble();

 // Print the values to check if input was correctly obtained.
 System.out.println("Name: "+name);
 System.out.println("Gender: "+gender);
 System.out.println("Age: "+age);
 System.out.println("Mobile Number: "+mobileNo);
 System.out.println("CGPA: "+cgpa);
 }
 }
 import java.util.Scanner;

 public class ScannerDemo2
 {
 public static void main(String[] args)
 {
 // Declare an object and initialize with
 // predefined standard input object
 Scanner sc = new Scanner(System.in);

 // Initialize sum and count of input elements
 int sum = 0, count = 0;

 // Check if an int value is available
 while (sc.hasNextInt())
 {
 // Read an int value
 int num = sc.nextInt();
 sum += num;
 count++;
 }
 int mean = sum / count;
 System.out.println("Mean: " + mean);
 }
 }
 import java.util.Scanner;

I'll go step by step. First of all to understand this, you need to know what a package is?
In java, packages are the container for classes and whenever we want to use the features
of another classes that are defined in another package,we use import keyword.
Now, let's see what java.util.Scanner means !!

In java we use "." to denote the hierarchy. So the above statement will denote -
java\util\Scanner in Windows environment.

So, the full meaning is -


import Scanner class which is in util folder inside the java folder.
In java -
util :stands for utility and contains utility classes.
Scanner : is a predefined class for taking inputs from user.

You might also like