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