Input validation in java using Scanner

In this post, we will see how to do input validation in java using Scanner class.

The Java Scanner class is used to get input from user. It provides several methods to get input of different types and to validate the input as well. Here we will see some of these methods that can be used to get user input and do the input validation in java.

Scanner Methods to Validate User Input

Method Description
boolean hasNext​(String pattern) It returns true if the next token matches the pattern constructed from the specified string.
boolean hasNext​(Pattern pattern) It returns true if the next complete token matches the specified pattern.
boolean hasNextBigDecimal​() It returns true if the next token in this scanner’s input can be interpreted as a BigDecimal using the nextBigDecimal() method.
boolean hasNextBigInteger​() It returns true if the next token in this scanner’s input can be interpreted as a BigInteger in the default radix using the nextBigInteger() method.
boolean hasNextBigInteger​(int radix) It returns true if the next token in this scanner’s input can be interpreted as a BigInteger in the specified radix using the nextBigInteger() method.
boolean hasNextBoolean​() It returns true if the next token in this scanner’s input can be interpreted as a boolean value using a case insensitive pattern created from the string “true|false”.
boolean hasNextByte​() It returns true if the next token in this scanner’s input can be interpreted as a byte value in the default radix using the nextByte() method.
boolean hasNextByte​(int radix) It returns true if the next token in this scanner’s input can be interpreted as a byte value in the specified radix using the nextByte() method.
boolean hasNextDouble​() It returns true if the next token in this scanner’s input can be interpreted as a double value using the nextDouble() method.
boolean hasNextFloat​() It returns true if the next token in this scanner’s input can be interpreted as a float value using the nextFloat() method.
boolean hasNextInt​() It returns true if the next token in this scanner’s input can be interpreted as an int value in the default radix using the nextInt() method.
boolean hasNextInt​(int radix) It returns true if the next token in this scanner’s input can be interpreted as an int value in the specified radix using the nextInt() method.
boolean hasNextLine​() It returns true if there is another line in the input of this scanner.
boolean hasNextLong​() It returns true if the next token in this scanner’s input can be interpreted as a long value in the default radix using the nextLong() method.
boolean hasNextLong​(int radix) It returns true if the next token in this scanner’s input can be interpreted as a long value in the specified radix using the nextLong() method.
boolean hasNextShort​() It returns true if the next token in this scanner’s input can be interpreted as a short value in the default radix using the nextShort() method.
boolean hasNextShort​(int radix) It returns true if the next token in this scanner’s input can be interpreted as a short value in the specified radix using the nextShort() method.

Scanner Methods to get User Input

Method Description
String next​(String pattern) It returns the next token if it matches the pattern constructed from the specified string.
String next​(Pattern pattern) It returns the next token if it matches the specified pattern.
BigDecimal nextBigDecimal​() It scans the next token of the input as a BigDecimal.
BigInteger nextBigInteger​() It scans the next token of the input as a BigInteger.
BigInteger nextBigInteger​(int radix) It scans the next token of the input as a BigInteger.
boolean nextBoolean​() It scans the next token of the input into a boolean value and returns that value.
byte nextByte​() It scans the next token of the input as a byte.
byte nextByte​(int radix) It scans the next token of the input as a byte.
double nextDouble​() It scans the next token of the input as a double.
float nextFloat​() It scans the next token of the input as a float.
int nextInt​() It scans the next token of the input as an int.
int nextInt​(int radix) It scans the next token of the input as an int.
String nextLine​() it advances this scanner past the current line and returns the input that was skipped.
long nextLong​() It scans the next token of the input as a long.
long nextLong​(int radix) It scans the next token of the input as a long.
short nextShort​() It scans the next token of the input as a short.
short nextShort​(int radix) It scans the next token of the input as a short.

Input validation using Scanner class

We can do different type of input validation using different hasNextXXX() methods.

Validate integer input using Scanner in Java

We can use hasNextInt() method to check whether the input is integer and then get that using nextInt() method. See the example below.

Output

Enter an Integer value
50
You entered a positive integer 50

Validate Floating point input using Scanner in Java

To validate floating-point values, we used hasNextDouble() method that returns true if the input is floating type and nextDouble() method is used to get the user input.

Output:

Enter a floating point value
25.21
You entered a positive value 25.21

Validate Boolean input using Scanner in Java

We can use hasNextBoolean() method to check whether the input is a valid boolean or not and nextBoolean() method is used to get the input value.

Output

Enter a boolean value
false
You entered a boolean value false

Validate String input using Scanner in Java

To validate a string value, we can use regex to get string in a specific format. Here, the hasNext() takes a regex to validate a string that can contain only alphabets. See the example below.

Output

Enter a String
java
You entered a string value java

That’s all about Input validation in java using Scanner.

Related Posts

  • 04 May

    Validate password in java

    In this post, we will see how to validate a password in java. Here are rules for password: Must have at least one numeric character Must have at least one lowercase character Must have at least one uppercase character Must have at least one special symbol among @#$% Password length should be between 8 and […]

  • 04 May

    Java regex for currency symbols

    In this post, we will see about regex to find currency symbols in a text. You can use below regex to find currency symbols in any text. \\p{Sc} Each unicharacter belongs to certain category and you can search for it using /p. Sc is short code for current symbol, so using \p{Sc}, we are trying […]

  • 04 May

    Java credit card validation – Luhn Algorithm in java

    In this post, we will see about Luhn Algorithm in java Introduction Luhn algorithm, also known as modulus 10 or mod 10 algorithm, is a simple checksum process for validating various identification numbers such as credit card numbers, Canadian social securities numbers. This algorithm is designed to protect again mistyped or accidental error rather than […]

  • 21 March

    Java isNull method

    In this post, we will about Objects class’s isNull method. Objects’s isNull() method is used to check if object is null or not. java.util.Objects class was introduced in java 7. Here is simple example for Object's isNull method. [crayon-6001d6afd6f86078113436/] Output: Is str1 null: false Is str2 null: true Let’s look at source code Object’s isNull() […]

  • 25 July

    Validate phone number in java

    In this post, we will see how to validate phone number in java. Validate any international phone number as per E.123 E.123 is a standards-based recommendation by the International Telecommunications Union sector ITU-T. E.123 provides following specifications. The leading plus (+) serves as an international prefix symbol, and is immediately followed by the country code […]

  • 11 July

    Validate email address in java

    In this post, we will see how to validate email address in java. There are times when you have to validate email address provided by user. You might want to write your own logic to validate email addresses but there are lots of standard regular expressions or libraries which can help you validate email address […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.