Methods of the Scanner class you can use to validate data
*******************************************************
hasNext() Returns true if the scanner contains another token.
hasNextInt() Returns true if the scanner contains another token that can be converted to an int value.
hasNextDouble() Returns true if the scanner contains another token that can be converted to a double value.
nextLine() Returns any remaining input on the current line as a String object and advances the scanner to the next line.
*******************************************************
example 1. Code that prevents an InputMismatchException
double subtotal = 0.0;
System.out.print("Enter subtotal: ");
if (sc.hasNextDouble())
subtotal = sc.nextDouble();
else
{
sc.nextLine(); // discard the entire line
System.out.println("Error! Invalid number. Try again.\n");
continue; // jump to the top of the loop
}
*******************************************************
example 2: Code that prevents a NullPointerException
if (customerType != null)
{
if (customerType.equals("R"))
discountPercent = .4;
}
*******************************************************
Description:
1. The has methods of the Scanner class let you check
whether additonal data is available at the console
and whether that data can be converted to a specific
data type. You can use these methods to prevent an
exception from being thrown when one of the next
methods is called.
2. You can use the nextLine method to retrieve and
discard any additional data that the user enters
on a line that isn't required by the application.
3. When hour code prevents an exception from being
thrown, it runs faster that code that catches and
then handles the exception.
*******************************************************