Scanner Class in Java
Scanner Class is easy to understand and implement. That is why it is best suited for beginners. It is not very efficient because it fails the time constraint and hence not at all advisable for competitive programming.
Scanner Class in Java
‘Scanner’ is a class of java.util.Scanner package. Define an object of Scanner Class and assign it to an object reference and pass the predefined object System.in as its argument which gives it access to the input data stream. Read:-
- A string using next().
- A string until a newline appears using nextLine().
- A character using next().charAt(0).
- Numerical values using nextInt() and nextDouble() and nextFloat() for integer, double and float data types respectively. Likewise, for other data types.
You may also read,
Take inputs from the user using scanner class in Java
import java.util.Scanner;
public class inputdemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // defining object of Scanner class with passing 'System.in' as the argument
String str = sc.nextLine(); // string input
char ch = sc.next().charAt(0); // character input
int num1 = sc.nextInt(); // integer input
double num2 = sc.nextDouble(); // double input
float num3 = sc.nextFloat(); // float input
sc.close(); // the object reference can be closed once its purpose has been served // though this is not mandatory
// Checking the values of input taken.
System.out.println(str);
System.out.println(ch);
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
}
}Input
The Weeknd yes 12345 1221.324 24234324.43254324
Output
The Weeknd
y
12345
1221.324
2.4234324E7
The user may have to clear the buffer in some conditions for instance in the following code.
import java.util.Scanner;
public class inputdemo0 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt(); // integer input
double d=scan.nextDouble(); // double input
String s=scan.nextLine(); // string input
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
}
Input:
123
123.456
helloOutput:
String:
Double: 123.456
Int: 123The string input appears to be blank because it contains a newline. Debug this by writing scan.nextLine() in the code.
import java.util.Scanner;
public class inputdemo0 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt(); // integer input
double d=scan.nextDouble(); // double input
scan.nextLine(); // clearing the buffer
String s=scan.nextLine(); // string input
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
}
Input:
123
123.456
helloOutput:
String: hello
Double: 123.456
Int: 123Footnote:
For self-help on Scanner Class, refer the below link.
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
You may also learn,
Leave a Reply