Scanner and nextInt discard integer
input, java
Solution
1. First use `nextLine()` to read the entire line.
2. Use `Integer.parseInt()` method to validate the integer input.
Eg:
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
try{
Integer.parseInt(s);
}
catch(NumberFormatException ex){
System.out.println("Its not a valid Integer");
}
Problem
I am using Scanner for taking user input in java. when i use nextInt() and the user inputs "2 5", then the value "2" is assigned and 5 is thrown away. What if I want to display that such an input is an error? One solution that comes to my mind is that i can use nextString() instead of nextInt() and then work my way out. But can anybody suggest a better solution? i realized that it is not throwing away the integer after space, instead it is using it for the next input. ``` import java.util.Scanner; class Test{ static Scanner in=new Scanner(System.in); static void trial(){ int k=in.nextInt(); System.out.println(k); System.out.println(k); } public static void main(String[] args){ int k=in.nextInt(); System.out.println(k); System.out.println(k); trial(); } } ```