Reputation: 163
How would I use InputMismatchException to determine if the value entered into the Scanner is not an integer? Basically, if they enter in a word instead of an integer I need to use InputMismatchException to return a message.
while (true) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
try{
Integer.parseInt(i);
} catch (InputMismatchException e) {
System.out.println("Sorry, " + i + " is not a number.");
}
if (i == 1) {
System.out.println("1 was selected");
} else {
System.out.println("1 was not selected");
}
Upvotes: 3
Views: 70
Reputation: 1
I am new to the programming, I think I got the code for your question.
while (true) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
try{
int i = Integer.parseInt(s);
if (i == parseInt(i, 3)) {
System.out.println(s+" is selected");
} else {
System.out.println("Input value is " + s);
}
} catch (NumberFormatException e) {
System.out.println("Sorry, " + s + " is not a number.");
}}}
private static int parseInt(int i, int j) {
// TODO Auto-generated method stub
return 0;
}}
Upvotes: 0
Reputation: 14640
Change your code as such:
while (true) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
try{
int i = Integer.parseInt(s);
if (i == 1) {
System.out.println("1 was selected");
} else {
System.out.println("1 was not selected");
}
} catch (NumberFormatException e) {
System.out.println("Sorry, " + s + " is not a number.");
}
}
Changes:
Upvotes: 2
Reputation: 838
This is what i mean
while (true) {
Scanner sc = new Scanner(System.in);
int i = -1;
try
{
i = sc.nextInt();
}
catch (InputMismatchException e)
{System.out.println("Sorry, " + i + " is not a number.");}
if (i == 1)
System.out.println("1 was selected");
else
System.out.println("1 was not selected");
}
Upvotes: 0