the operator decides if the two numbers are added subtracted...etc. 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
Expand|Select|Wrap|Line Numbers
- 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;
- }
- }
- }