Hey guys, im trying to finish an assignment for a java class, and i have finished the program except for one part. The program requires that i take 3 values inputted from the user, the first 2 must be digits between 0 and 9, and the third an operator.
the operator decides if the two numbers are added subtracted...et c. anyways the things i cannot get, is i need to check if they enter valid digits, and not letters, however if i do put a letter in, scanner gives me an exception. it happens at line 14 when you enter a letter.... how can i test if it is a letter... any suggestions?
here is my code
the operator decides if the two numbers are added subtracted...et c. anyways the things i cannot get, is i need to check if they enter valid digits, and not letters, however if i do put a letter in, scanner gives me an exception. it happens at line 14 when you enter a letter.... how can i test if it is a letter... any suggestions?
here is my code
Code:
import java.util.Scanner; import java.text.DecimalFormat; public class problem1 { public static void main(String[]args){ double num1, num2, answ; String tString,num1Word = " ",num2Word= " "; Scanner scan = new Scanner(System.in); DecimalFormat formatter = new DecimalFormat("0"); System.out.println("Please enter two numbers between 0 and 9 "); num1= scan.nextDouble(); num2= scan.nextDouble(); if(Character.isDigit((Double.toString(num1)).charAt(0))){ } else{System.out.println("Please Enter Digits only!"); System.exit(0); } switch((int)num1){ case 0: num1Word= "Zero"; break; case 1: num1Word= "One"; break; case 2: num1Word= "Two"; break; case 3: num1Word= "Three"; break; case 4: num1Word= "Four"; break; case 5: num1Word= "Five"; break; case 6: num1Word= "Six"; break; case 7: num1Word= "Seven"; break; case 8: num1Word= "Eight"; break; case 9: num1Word= "Nine"; break; default: System.out.println("Invalid Number"); System.exit(0); break; } switch((int)num2){ case 0: num2Word= "Zero"; break; case 1: num2Word= "One"; break; case 2: num2Word= "Two"; break; case 3: num2Word= "Three"; break; case 4: num2Word= "Four"; break; case 5: num2Word= "Five"; break; case 6: num2Word= "Six"; break; case 7: num2Word= "Seven"; break; case 8: num2Word= "Eight"; break; case 9: num2Word= "Nine"; break; default: System.out.println("Invalid Number"); System.exit(0); break; } System.out.println("Please enter the mathematical symbol for what you would like to do with these numbers. "); tString = scan.next(); char operator = tString.charAt(0); switch(operator){ case '*': answ= num1*num2; System.out.println(num1Word+ " Multiplied by "+num2Word+" is "+formatter.format(answ)); break; case '/': if(num2 == 0){ System.out.println("You cannot divide by zero, session terminated."); } else{ answ= num1/num2; System.out.println(num1Word+ " Divided by "+num2Word+" is "+formatter.format(answ)); } break; case '+': answ= num1 + num2; System.out.println(num1Word+ " Added to "+num2Word+" is "+formatter.format(answ)); break; case '-': answ= num1 - num2; System.out.println(num1Word+ " Minus "+num2Word+" is "+formatter.format(answ)); break; case '^': answ= Math.pow(num1,num2); System.out.println(num1Word+ " raised to the power of " +num2Word+ " is "+ formatter.format(answ)); break; default: System.out.println("Invalid Operator"); System.exit(0); break; } } }
Comment