In my program I want an integer input by the user. I want an error message to be show when user inputs a value which is not an integer. How can I do this. My program is to find area of circle. In which user will input the value of radius. But if user inputs a character I want a message to be shown saying Invalid Input.
This is my code:
int radius, area;
Scanner input=new Scanner(System.in);
System.out.println("Enter the radius:\t");
radius=input.nextInt();
area=3.14*radius*radius;
System.out.println("Area of circle:\t"+area);
This question is related to
java
If you are getting the user input with Scanner
, you can do:
if(yourScanner.hasNextInt()) {
yourNumber = yourScanner.nextInt();
}
If you are not, you'll have to convert it to int
and catch a NumberFormatException
:
try{
yourNumber = Integer.parseInt(yourInput);
}catch (NumberFormatException ex) {
//handle exception here
}
Using Integer.parseIn(String), you can parse string value into integer. Also you need to catch exception in case if input string is not a proper number.
int x = 0;
try {
x = Integer.parseInt("100"); // Parse string into number
} catch (NumberFormatException e) {
e.printStackTrace();
}
String input = "";
int inputInteger = 0;
BufferedReader br = new BufferedReader(new InputStreamReader (System.in));
System.out.println("Enter the radious: ");
try {
input = br.readLine();
inputInteger = Integer.parseInt(input);
} catch (NumberFormatException e) {
System.out.println("Please Enter An Integer");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
float area = (float) (3.14*inputInteger*inputInteger);
System.out.println("Area = "+area);
You can try this way
String input = "";
try {
int x = Integer.parseInt(input);
// You can use this method to convert String to int, But if input
//is not an int value then this will throws NumberFormatException.
System.out.println("Valid input");
}catch(NumberFormatException e) {
System.out.println("input is not an int value");
// Here catch NumberFormatException
// So input is not a int.
}
You can use try-catch block to check for integer value
for eg:
User inputs in form of string
try
{
int num=Integer.parseInt("Some String Input");
}
catch(NumberFormatException e)
{
//If number is not integer,you wil get exception and exception message will be printed
System.out.println(e.getMessage());
}
If the user input is a String
then you can try to parse it as an integer using parseInt
method, which throws NumberFormatException
when the input is not a valid number string:
try {
int intValue = Integer.parseInt(stringUserInput));
}(NumberFormatException e) {
System.out.println("Input is not a valid integer");
}
Source: Stackoverflow.com